首页
社区
课程
招聘
[旧帖] [求助]大家看下这段汇编代码是什么加密算法 0.00雪花
发表于: 2009-9-14 19:31 3788

[旧帖] [求助]大家看下这段汇编代码是什么加密算法 0.00雪花

2009-9-14 19:31
3788
这段汇编函数是从一个linux软件里抠出来的,感觉有很多混淆。
函数参数是两个字符串指针,输入是64字节字符串指针,输出也是字符串指针。目前很想了解:
1、它是不是对称加密算法?
2、它是不是公开的加密算法?
3、能不能逆向出解密算法?


.data

dword_804D330 dd 548D563h ; DATA XREF: sub_804B5C8+3Dr
dword_804D334 dd 98308EABh ; DATA XREF: sub_804B82A+C9r
dword_804D338 dd 37AF7CCCh
;dword_804D33C dd 0DFBC4E3Ch, 0F125AAC9h, 0EC98ACB8h, 8B540795h, 0D3E0EF0Eh ;这里有问题
dword_804D33C dd 0DFBC4E3Ch, 0F125AAC9h, 0EC98ACB8h, 8B540795h, 0D3E0EF0Eh
dd 4904D6E5h, 0DA84981h, 9A1F8452h, 0EB7EAAh, 96F8E3B3h
dd 0A6CDB655h, 0E7410F9Eh, 8EECB03Dh, 9C6A7C25h, 0D77B072Fh
dd 6E8F650Ah, 124E3640h, 7E53785Ah, 0E0150772h, 0C61EF4E0h
dd 0BC57E5E0h, 0C0F9A285h, 0DB342856h, 190834C7h, 0FBEB7D8Eh
dd 251BED34h, 0E9F2AADh, 256AB901h, 0A5B7890h, 9F124F09h
dd 0D84A9151h, 427AF67Ah, 8059C9AAh, 13EAB029h, 3153CDF1h
dd 262D405Dh, 0A2105D87h, 9C745F15h, 0D1613847h, 294CE135h
dd 20FB0F3Ch, 8424D8EDh, 8F4201B6h, 12CA1EA7h, 2054B091h
dd 463D8288h, 0C83253C3h, 33EA314Ah, 9696DC92h, 0D041CE9Ah
dd 0E5477160h, 0C7656BE8h, 5179FE33h, 1F4726F1h, 5F393AF0h
dd 26E2D004h, 6D020245h, 85FDF6D7h, 0B0237C56h, 0FF5FBD94h
dd 0A8B3F534h
byte_804E68F db 0E4h ; DATA XREF: sub_804B82A+23Br
byte_804E68D db 10h
byte_804E68E db 67h
byte_804E68C db 8Eh
byte_804E692 db 0CDh
byte_804E690 db 30h
byte_804E691 db 5Fh
byte_804E693 db 0C0h ; DATA XREF: sub_804B82A+2B4r
byte_804E694 db 0CFh ; DATA XREF: sub_804B82A+2AAr
byte_804E695 db 0BFh
byte_804E696 db 95h ; DATA XREF: sub_804B82A+2E6r
byte_804E697 db 0C1h ; DATA XREF: sub_804B82A+2DCr
byte_804E698 db 0Fh ; DATA XREF: sub_804B82A+2D5r
byte_804E699 db 96h ; DATA XREF: sub_804B82A+311r
byte_804E69A db 0E5h ; DATA XREF: sub_804B82A+307r
byte_804E69B db 0DFh ; DATA XREF: sub_804B82A+31Dr
byte_804E69C db 0E8h ; DATA XREF: sub_804B82A+351r
byte_804E69D db 0C4h ; DATA XREF: sub_804B82A+33Br
byte_804E69E db 9Ah ; DATA XREF: sub_804B82A+345r
byte_804E69F db 0EFh ; DATA XREF: sub_804B82A+334r
byte_804E6A0 db 48h ; DATA XREF: sub_804B82A+37Br
byte_804E6A1 db 6Bh ; DATA XREF: sub_804B82A+371r
byte_804E6A2 db 0D1h ; DATA XREF: sub_804B82A+36Ar
byte_804E6A3 db 0A4h ; DATA XREF: sub_804B82A+3ACr
byte_804E6A4 db 0E2h ; DATA XREF: sub_804B82A+3A2r
byte_804E6A5 db 0E9h ; DATA XREF: sub_804B82A+39Br
byte_804E6A6 db 6Ch ; DATA XREF: sub_804B82A+3DEr
byte_804E6A7 db 27h ; DATA XREF: sub_804B82A+3D4r
byte_804E6A8 db 0F0h ; DATA XREF: sub_804B82A+3CDr
byte_804E6A9 db 1Eh ; DATA XREF: sub_804B82A+409r
byte_804E6AA db 3Eh ; DATA XREF: sub_804B82A+3FFr
byte_804E6AB db 32h
unk_804D450 db 3Bh ; ; ; DATA XREF: sub_804B82A+529o
db 58h ; X
db 62h ; b
db 2
db 0C0h ; ?.rodata:0804D455 2E
db 2Eh ; .
db 1Dh
db 1
db 85h ; ?.rodata:0804D459 75
db 75h ; u
db 93h ; ?.rodata:0804D45B 03
db 3
db 39h ; 9
db 28h ; (
db 19h
db 0
db 94h ; ?.rodata:0804D461 15
db 15h
db 6Eh ; n
db 3
db 66h ; f
db 5Dh ; ]
db 6Eh ; n
db 1
db 88h ; ?.rodata:0804D469 D3
db 0D3h ; ?.rodata:0804D46A 22
db 22h ; "
db 1
db 0F8h ; ?.rodata:0804D46D C7
db 0C7h ; ?.rodata:0804D46E 52
db 52h ; R
db 0
db 0EFh ; ?.rodata:0804D471 EB
db 0EBh ; ?.rodata:0804D472 C8
db 0C8h ; ?.rodata:0804D473 03
db 3
db 32h ; 2
db 8Fh ; ?.rodata:0804D476 FA
db 0FAh ; ?.rodata:0804D477 00
db 0
unk_804D430 db 32h ; 2 ; DATA XREF: sub_804B732+21o
db 39h ; 9
db 65h ; e
db 5Bh ; [
db 8Fh ; ?.rodata:0804D435 5F
db 5Fh ; _
db 14h
db 7Bh ; {
db 91h ; ?.rodata:0804D439 B2
db 0B2h ; ?.rodata:0804D43A FF
db 0FFh
db 71h ; q
db 5Fh ; _
db 92h ; ?.rodata:0804D43E EF
db 0EFh ; ?.rodata:0804D43F 38
db 38h ; 8
db 0F9h ; ?.rodata:0804D441 AA
db 0AAh ; ?.rodata:0804D442 E1
db 0E1h ; ?.rodata:0804D443 03
db 3
db 0CCh ; ?.rodata:0804D445 57
db 57h ; W
db 20h
db 4Ah ; J
db 0D9h ; ?.rodata:0804D449 4D
db 4Dh ; M
db 0AFh ; ?.rodata:0804D44B 4C
db 4Ch ; L
db 0EAh ; ?.rodata:0804D44D C9
db 0C9h ; ?.rodata:0804D44E 3C
db 3Ch ; <
db 64h ; d




.code
start:
; Attributes: bp-based frame

sub_804B82A proc near

var_3F8= dword ptr -3F8h
var_3F4= dword ptr -3F4h
var_3E4= dword ptr -3E4h
var_3E0= dword ptr -3E0h
var_3DC= dword ptr -3DCh
var_3D8= dword ptr -3D8h
var_3D4= dword ptr -3D4h
var_3D0= dword ptr -3D0h
var_3CC= dword ptr -3CCh
var_3C8= dword ptr -3C8h
var_3C4= dword ptr -3C4h
var_3C0= dword ptr -3C0h
var_3BC= dword ptr -3BCh
var_3B8= dword ptr -3B8h
var_3B4= dword ptr -3B4h
var_3B0= dword ptr -3B0h
var_3AC= dword ptr -3ACh
var_3A8= dword ptr -3A8h
var_3A4= dword ptr -3A4h
var_398= dword ptr -398h
var_370= byte ptr -370h
var_348= byte ptr -348h
var_320= dword ptr -320h
var_2FC= dword ptr -2FCh
var_2F8= dword ptr -2F8h
var_2F4= qword ptr -2F4h
anonymous_0= qword ptr -2ECh
var_2E4= qword ptr -2E4h
var_2DC= dword ptr -2DCh
var_2D8= dword ptr -2D8h
var_2D4= dword ptr -2D4h
var_2D0= byte ptr -2D0h
var_2A8= byte ptr -2A8h
var_280= byte ptr -280h
var_258= byte ptr -258h
var_230= byte ptr -230h
var_208= byte ptr -208h
var_1E0= byte ptr -1E0h
var_1B8= dword ptr -1B8h
var_190= dword ptr -190h
var_168= byte ptr -168h
var_140= dword ptr -140h
var_13C= dword ptr -13Ch
var_138= dword ptr -138h
var_134= dword ptr -134h
var_130= dword ptr -130h
var_12C= dword ptr -12Ch
var_128= dword ptr -128h
var_124= dword ptr -124h
var_120= dword ptr -120h
var_11C= dword ptr -11Ch
var_118= dword ptr -118h
var_F0= byte ptr -0F0h
var_C8= byte ptr -0C8h
var_80= byte ptr -80h
var_61= byte ptr -61h
var_60= byte ptr -60h
var_5F= byte ptr -5Fh
var_5E= byte ptr -5Eh
var_5D= byte ptr -5Dh
var_5C= byte ptr -5Ch
var_5B= byte ptr -5Bh
var_5A= byte ptr -5Ah
var_59= byte ptr -59h
var_58= byte ptr -58h
var_57= byte ptr -57h
var_56= byte ptr -56h
var_55= byte ptr -55h
var_54= byte ptr -54h
var_53= byte ptr -53h
var_52= byte ptr -52h
var_51= byte ptr -51h
var_50= byte ptr -50h
var_4F= byte ptr -4Fh
var_4E= byte ptr -4Eh
var_4D= byte ptr -4Dh
var_4C= byte ptr -4Ch
var_4B= byte ptr -4Bh
var_4A= byte ptr -4Ah
var_49= byte ptr -49h
var_48= byte ptr -48h
var_47= byte ptr -47h
var_46= byte ptr -46h
var_45= byte ptr -45h
var_44= byte ptr -44h
var_43= byte ptr -43h
var_42= word ptr -42h
var_40= byte ptr -40h
var_20= dword ptr -20h
var_1C= dword ptr -1Ch
var_18= dword ptr -18h
var_14= dword ptr -14h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 3ECh
mov eax, [ebp-8]
mov edx, [ebp-12]
mov [ebp+var_3D4], eax
mov [ebp+var_3D8], edx
mov ebx, [eax]
ror bx, 8
ror ebx, 10h
ror bx, 8
mov ecx, [eax+4]
ror cx, 8
ror ecx, 10h
ror cx, 8
mov edx, [eax+8]
ror dx, 8
ror edx, 10h
ror dx, 8
mov eax, [eax+0Ch]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [ebp+var_20], ebx
mov [ebp+var_1C], ecx
mov [ebp+var_18], edx
mov [ebp+var_14], eax
xor eax, eax
mov [ebp+var_3A8], 0

loc_804B891:
lea edi, [eax+3]
and edi, 3
lea ebx, [eax+2]
and ebx, 3
lea edx, [eax+1]
mov [ebp+var_3D0], edx
and edx, 3
mov [ebp+var_3CC], edx
mov esi, eax
and esi, 3
mov eax, [ebp+var_3A8]
mov ecx, ds:dword_804D330[eax]
mov eax, [ebp+ebx*4+var_20]
sub eax, [ebp+esi*4+var_20]
sub eax, ecx
mov [ebp+ebx*4+var_20], eax
and ecx, 0Fh
mov eax, [ebp+esi*4+var_20]
rol eax, cl
xor eax, [ebp+edi*4+var_20]
mov [ebp+edi*4+var_20], eax
add eax, [ebp+esi*4+var_20]
mov [ebp+var_3E4], eax
mov [ebp+edi*4+var_20], eax
mov edx, [ebp+var_3A8]
mov ecx, ds:dword_804D334[edx]
mov eax, [ebp+var_3CC]
mov edx, [ebp+eax*4+var_20]
sub edx, ecx
sub edx, [ebp+var_3E4]
mov [ebp+eax*4+var_20], edx
and ecx, 0Fh
rol edx, cl
xor edx, [ebp+ebx*4+var_20]
mov [ebp+ebx*4+var_20], edx
add edx, [ebp+eax*4+var_20]
mov [ebp+ebx*4+var_20], edx
mov eax, [ebp+var_3A8]
mov ecx, ds:dword_804D338[eax]
mov eax, [ebp+esi*4+var_20]
sub eax, ecx
sub eax, edx
mov [ebp+esi*4+var_20], eax
and ecx, 0Fh
mov edx, [ebp+ebx*4+var_20]
rol edx, cl
mov ecx, [ebp+var_3CC]
xor edx, [ebp+ecx*4+var_20]
mov [ebp+ecx*4+var_20], edx
add edx, [ebp+ebx*4+var_20]
mov [ebp+ecx*4+var_20], edx
mov ebx, [ebp+var_3A8]
mov ecx, ds:dword_804D33C[ebx]
mov eax, [ebp+edi*4+var_20]
sub eax, ecx
sub eax, edx
mov [ebp+edi*4+var_20], eax
and ecx, 0Fh
rol eax, cl
xor eax, [ebp+esi*4+var_20]
mov [ebp+esi*4+var_20], eax
add eax, [ebp+edi*4+var_20]
mov [ebp+esi*4+var_20], eax
add ebx, 10h
mov [ebp+var_3A8], ebx
cmp [ebp+var_3D0], 10h
jz short loc_804B9A5
mov eax, [ebp+var_3D0]
jmp loc_804B891

loc_804B9A5:
mov eax, [ebp+var_20]
ror ax, 8
ror eax, 10h
ror ax, 8
mov esi, [ebp+var_3D8]
mov [esi], eax
mov eax, [ebp+var_1C]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [esi+4], eax
mov eax, [ebp+var_18]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [esi+8], eax
mov eax, [ebp+var_14]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [esi+0Ch], eax
lea esi, [ebp+var_40]
mov ecx, 10h
mov edx, [ebp+var_3D8]
mov eax, esi
call sub_804B732
mov edi, [ebp+var_3D4]
add edi, 10h
mov [ebp+var_3C8], edi
lea ebx, [ebp+var_80]
push edi
push 20h ; size_t
push esi ; void *
push ebx ; void *
call _memcpy
xor edx, edx
add esp, 10h
mov ecx, ebx

loc_804BA26:
mov ebx, [ebp+var_3C8]
mov al, [edx+ebx]
xor [edx+ecx+8], al
inc edx
cmp edx, 10h
jnz short loc_804BA26
mov al, [ebp+var_61]
and eax, 7Fh
or eax, 40h
mov [ebp+var_61], al
and [ebp+var_80], 0F8h
mov esi, [ebp+var_3D4]
add esi, 20h
mov [ebp+var_3C4], esi
lea eax, [ebp+var_168]
mov dl, 9
call sub_8048C78
movzx ecx, byte_804E68F
movzx edx, byte_804E68D
shl edx, 8
movzx eax, byte_804E68E
shl eax, 10h
or edx, eax
movzx eax, byte_804E68C
or edx, eax
mov eax, ecx
and eax, 3
shl eax, 18h
or edx, eax
mov [ebp+var_140], edx
movzx ebx, byte_804E692
movzx edx, byte_804E691
shl edx, 0Eh
movzx eax, byte_804E690
shl eax, 6
or edx, eax
shr ecx, 2
or edx, ecx
mov eax, ebx
and eax, 7
shl eax, 16h
or edx, eax
mov [ebp+var_13C], edx
movzx ecx, byte_804E695
movzx edx, byte_804E694
shl edx, 0Dh
movzx eax, byte_804E693
shl eax, 5
or edx, eax
shr ebx, 3
or edx, ebx
mov eax, ecx
and eax, 1Fh
shl eax, 15h
or edx, eax
mov [ebp+var_138], edx
movzx ebx, byte_804E698
movzx edx, byte_804E697
shl edx, 0Bh
movzx eax, byte_804E696
shl eax, 3
or edx, eax
shr ecx, 5
or edx, ecx
mov eax, ebx
and eax, 3Fh
shl eax, 13h
or edx, eax
mov [ebp+var_134], edx
movzx edx, byte_804E69A
shl edx, 0Ah
movzx eax, byte_804E699
shl eax, 2
or edx, eax
movzx eax, byte_804E69B
shl eax, 12h
or edx, eax
shr ebx, 6
or edx, ebx
mov [ebp+var_130], edx
movzx ecx, byte_804E69F
movzx edx, byte_804E69D
shl edx, 8
movzx eax, byte_804E69E
shl eax, 10h
or edx, eax
movzx eax, byte_804E69C
or edx, eax
mov eax, ecx
and eax, 1
shl eax, 18h
or edx, eax
mov [ebp+var_12C], edx
movzx ebx, byte_804E6A2
movzx edx, byte_804E6A1
shl edx, 0Fh
movzx eax, byte_804E6A0
shl eax, 7
or edx, eax
shr ecx, 1
or edx, ecx
mov eax, ebx
and eax, 7
shl eax, 17h
or edx, eax
mov [ebp+var_128], edx
movzx ecx, byte_804E6A5
movzx edx, byte_804E6A4
shl edx, 0Dh
movzx eax, byte_804E6A3
shl eax, 5
or edx, eax
shr ebx, 3
or edx, ebx
mov eax, ecx
and eax, 0Fh
shl eax, 15h
or edx, eax
mov [ebp+var_124], edx
movzx ebx, byte_804E6A8
movzx edx, byte_804E6A7
shl edx, 0Ch
movzx eax, byte_804E6A6
shl eax, 4
or edx, eax
shr ecx, 4
or edx, ecx
mov eax, ebx
and eax, 3Fh
shl eax, 14h
or edx, eax
mov [ebp+var_120], edx
movzx edx, byte_804E6AA
shl edx, 0Ah
movzx eax, byte_804E6A9
shl eax, 2
or edx, eax
movzx eax, byte_804E6AB
shl eax, 12h
or edx, eax
shr ebx, 6
or edx, ebx
mov [ebp+var_11C], edx
lea edx, [ebp+var_140]
lea eax, [ebp+var_320]
call sub_8049C3E
mov ecx, 76D06h
lea edx, [ebp+var_140]
lea eax, [ebp+var_398]
call sub_8048D4C
lea ecx, [ebp+var_398]
lea edx, [ebp+var_320]
mov eax, edx
call sub_8048C90
inc [ebp+var_320]
lea ecx, [ebp+var_140]
lea edx, [ebp+var_320]
lea eax, [ebp+var_398]
call sub_8049244
lea esi, [ebp+var_F0]
lea ecx, [ebp+var_398]
mov edx, ecx
mov eax, esi
call sub_8048C90
lea ebx, [ebp+var_C8]
mov ecx, 1
mov edx, esi
mov eax, ebx
call sub_804A4A4
mov edx, ebx
lea eax, [ebp+var_320]
call sub_8049C3E
lea edi, [ebp+var_118]
lea ecx, [ebp+var_320]
mov edx, esi
mov eax, edi
call sub_8049244
dec [ebp+var_118]
mov ecx, edi
mov edx, ebx
mov eax, esi
call sub_8049244
mov ecx, esi
lea edx, [ebp+var_398]
lea eax, [ebp+var_320]
call sub_8049244
mov ebx, [ebp+var_2FC]
shr ebx, 1Fh
lea eax, [ebp+var_320]
call sub_8048C0A
or ebx, eax
mov eax, [ebp+var_320]
and eax, 1
xor ebx, eax
add [ebp+var_398], 25981C8h
lea esi, [ebp+var_370]
lea ecx, [ebp+var_320]
mov edx, offset unk_804D450
mov eax, esi
call sub_8049244
imul eax, ebx, 28h
lea edi, [ebp+var_320]
lea eax, [edi+eax]
mov ecx, esi
lea edx, [ebp+var_398]
call sub_8048CEE
mov eax, 1
sub eax, ebx
imul eax, 28h
lea eax, [edi+eax]
mov ecx, esi
lea edx, [ebp+var_398]
call sub_8048C90
lea edx, [ebp+var_140]
lea eax, [ebp+var_398]
call sub_8048C5C
sub [ebp+var_398], 9
lea edx, [ebp+var_398]
mov eax, esi
call sub_8049C3E
xor ecx, ecx
mov edx, esi
lea eax, [ebp+var_398]
call sub_804A4A4
lea esi, [ebp+var_1B8]
lea ecx, [ebp+var_398]
mov edx, edi
mov eax, esi
call sub_8049244
lea ecx, [ebp+var_140]
mov edx, esi
mov eax, esi
call sub_8048CEE
sub [ebp+var_1B8], 76D0Fh
lea edx, [ebp+var_2F8]
lea ebx, [ebp+var_190]
lea ecx, [ebp+var_398]
mov eax, ebx
call sub_8049244
lea ecx, [ebp+var_140]
mov edx, ebx
mov eax, ebx
call sub_8048CEE
sub [ebp+var_190], 76D0Fh
mov ecx, 1
mov edx, esi
mov eax, esi
call sub_8048D4C
mov ecx, 1
mov edx, ebx
mov eax, ebx
call sub_8048D4C
xor esi, esi
mov [ebp+var_3A4], 0
xor ebx, ebx
mov edi, 1

loc_804BE55:
mov ecx, [ebp+var_3C4]
movzx edx, byte ptr [edi+ecx-1]
lea eax, [edx+edx]
xor eax, edx
shr esi, 8
xor esi, eax
movzx edx, byte ptr [edi+ebp-81h]
lea eax, [edx+edx]
xor eax, edx
shr [ebp+var_3A4], 8
xor [ebp+var_3A4], eax
mov ecx, [ebp+var_3A4]
xor ecx, esi
not ecx
mov eax, ebx
and eax, 80h
shr eax, 7
and eax, ecx
xor eax, esi
mov edx, eax
and edx, 1
shl edx, 1
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 2
shl eax, 1
and eax, ecx
xor eax, edx
mov edx, eax
and edx, 4
shl edx, 1
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 8
shl eax, 1
and eax, ecx
xor eax, edx
mov edx, eax
and edx, 10h
shl edx, 1
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 20h
shl eax, 1
and eax, ecx
xor eax, edx
mov edx, eax
and edx, 40h
lea ebx, [edx+edx]
and ebx, ecx
xor ebx, eax
mov [edi+ebp-0A1h], bl
inc edi
cmp edi, 21h
jnz loc_804BE55
and ebx, 80h
shl ebx, 1
and ebx, ecx
xor ebx, esi
shr ebx, 8
mov [ebp+var_3BC], ebx
lea eax, [ebp+var_230]
mov edx, 1
call sub_8048C78
imul eax, ebx, 28h
lea edx, [ebp+eax+var_168]
lea eax, [ebp+var_208]
call sub_8048C5C
lea edx, [ebp+var_1B8]
lea eax, [ebp+var_1E0]
call sub_8048C5C
lea eax, [ebp+var_2A8]
xor edx, edx
call sub_8048C78
lea eax, [ebp+var_280]
mov edx, 1
call sub_8048C78
lea eax, [ebp+var_258]
mov edx, 1
call sub_8048C78
mov [ebp+var_3B4], 0
mov [ebp+var_3B8], 0
mov [ebp+var_3AC], 21h
jmp loc_804C19D

loc_804BF96:
shl [ebp+var_3B4], 8
mov ebx, [ebp+var_3AC]
mov esi, [ebp+var_3C4]
movzx eax, byte ptr [ebx+esi-1]
or [ebp+var_3B4], eax
shl [ebp+var_3B8], 8
movzx eax, byte ptr [ebx+edx-1]
or [ebp+var_3B8], eax
shl [ebp+var_3BC], 8
movzx eax, byte ptr [ebx+ebp-0A1h]
or [ebp+var_3BC], eax
mov [ebp+var_3C0], 8
mov edi, [ebp+var_3B8]
shr edi, 1
mov eax, [ebp+var_3B8]
xor edi, eax
mov [ebp+var_3E0], edi
jmp loc_804C18A

loc_804C000:
lea ebx, [ebp+var_2A8]
push ebx
lea ecx, [ebp+var_230]
lea edx, [ebp+var_398]
lea eax, [ebp+var_320]
call sub_804A74E
lea edx, [ebp+var_280]
push edx
lea ecx, [ebp+var_208]
lea edx, [ebp+var_370]
lea eax, [ebp+var_2F8]
call sub_804A74E
lea edi, [ebp+var_1E0]
lea esi, [ebp+var_258]
push esi
mov ecx, edi
lea edx, [ebp+var_348]
lea eax, [ebp+var_2D0]
call sub_804A74E
mov edx, [ebp+var_3E0]
mov cl, byte ptr [ebp+var_3C0]
shr edx, cl
and edx, 1
mov eax, [ebp+var_3B4]
shr eax, 1
xor eax, [ebp+var_3B4]
shr eax, cl
and eax, 1
lea eax, [edx+eax]
add esp, 0Ch
imul eax, 28h
mov [ebp+var_3DC], eax
lea edx, [ebp+var_320]
add edx, eax
mov eax, edi
call sub_8049C3E
lea edx, [ebp+var_398]
add edx, [ebp+var_3DC]
mov eax, esi
call sub_8049C3E
mov ecx, esi
mov edx, edi
lea eax, [ebp+var_230]
call sub_8049244
mov ecx, esi
mov edx, edi
mov eax, esi
call sub_8048CEE
mov ecx, 1DB41h
mov edx, esi
mov eax, ebx
call sub_8048D4C
mov ecx, ebx
mov edx, edi
mov eax, edi
call sub_8048C90
mov ecx, esi
mov edx, edi
mov eax, ebx
call sub_8049244
mov eax, [ebp+var_3BC]
mov cl, byte ptr [ebp+var_3C0]
shr eax, cl
mov ebx, eax
and ebx, 1
lea edx, [ebx+ebx]
and eax, 2
xor edx, eax
imul edx, 28h
lea ecx, [ebp+var_320]
add ecx, edx
imul ebx, 28h
lea eax, [ebp+ebx+var_168]
push eax
lea ebx, [ebp+var_280]
push ebx
lea eax, [ebp+var_208]
push eax
lea ebx, [ebp+var_398]
lea edx, [ebx+edx]
push edx
lea edx, [ebp+var_370]
lea eax, [ebp+var_2F8]
call sub_804A774
mov eax, [ebp+var_3B8]
xor eax, [ebp+var_3B4]
mov cl, byte ptr [ebp+var_3C0]
shr eax, cl
and eax, 2
shr eax, 1
imul eax, 28h
lea eax, [ebp+eax+var_1B8]
push eax
push esi
push edi
push ebx
lea ecx, [ebp+var_320]
lea edx, [ebp+var_348]
lea eax, [ebp+var_2D0]
call sub_804A774
add esp, 20h

loc_804C18A:
dec [ebp+var_3C0]
cmp [ebp+var_3C0], 0FFFFFFFFh
jnz loc_804C000

loc_804C19D:
dec [ebp+var_3AC]
lea edx, [ebp+var_80]
jnz loc_804BF96
and [ebp+var_3B8], 1
and [ebp+var_3B4], 1
mov ebx, [ebp+var_3B8]
add ebx, [ebp+var_3B4]
imul ebx, 28h
lea edx, [ebp+ebx+var_2A8]
lea esi, [ebp+var_320]
xor ecx, ecx
mov eax, esi
call sub_804A4A4
lea edx, [ebp+ebx+var_230]
lea ebx, [ebp+var_2F8]
mov ecx, esi
mov eax, ebx
call sub_8049244
mov eax, ebx
call sub_8048C0A
mov [ebp+var_3B0], eax
mov eax, [ebp+var_2D4]
shr eax, 1Fh
sub [ebp+var_3B0], eax
mov eax, dword ptr [ebp+var_2F4]
cdq
shld edx, eax, 1Ah
shl eax, 1Ah
mov ecx, [ebp+var_2F8]
mov ebx, ecx
sar ebx, 1Fh
add eax, ecx
adc edx, ebx
imul ecx, [ebp+var_3B0], 13h
mov ebx, ecx
sar ebx, 1Fh
add eax, ecx
adc edx, ebx
mov [ebp+var_60], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_5F], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_5E], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_5D], al
shrd eax, edx, 8
sar edx, 8
mov ecx, dword ptr [ebp+var_2F4+4]
mov ebx, ecx
sar ebx, 1Fh
shld ebx, ecx, 13h
shl ecx, 13h
add eax, ecx
adc edx, ebx
mov [ebp+var_5C], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_5B], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_5A], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_59], al
shrd eax, edx, 8
sar edx, 8
mov ecx, dword ptr [ebp+anonymous_0]
mov ebx, ecx
sar ebx, 1Fh
shld ebx, ecx, 0Dh
shl ecx, 0Dh
add eax, ecx
adc edx, ebx
mov [ebp+var_58], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_57], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_56], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_55], al
shrd eax, edx, 8
sar edx, 8
mov ecx, dword ptr [ebp+anonymous_0+4]
mov ebx, ecx
sar ebx, 1Fh
shld ebx, ecx, 6
shl ecx, 6
add eax, ecx
adc edx, ebx
mov [ebp+var_54], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_53], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_52], al
shrd eax, edx, 8
sar edx, 8
mov [ebp+var_51], al
mov ecx, dword ptr [ebp+var_2E4+4]
mov ebx, ecx
sar ebx, 1Fh
shld ebx, ecx, 19h
shl ecx, 19h
mov esi, dword ptr [ebp+var_2E4]
mov edi, esi
sar edi, 1Fh
add ecx, esi
adc ebx, edi
shrd eax, edx, 8
sar edx, 8
add ecx, eax
adc ebx, edx
mov [ebp+var_50], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_4F], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_4E], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_4D], cl
shrd ecx, ebx, 8
sar ebx, 8
mov eax, [ebp+var_2DC]
cdq
shld edx, eax, 13h
shl eax, 13h
add ecx, eax
adc ebx, edx
mov [ebp+var_4C], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_4B], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_4A], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_49], cl
shrd ecx, ebx, 8
sar ebx, 8
mov eax, [ebp+var_2D8]
cdq
shld edx, eax, 0Ch
shl eax, 0Ch
add ecx, eax
adc ebx, edx
mov [ebp+var_48], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_47], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_46], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_45], cl
shrd ecx, ebx, 8
sar ebx, 8
imul eax, [ebp+var_3B0], 0FE000000h
mov [ebp+var_3F8], eax
mov esi, eax
sar esi, 1Fh
mov [ebp+var_3F4], esi
mov eax, [ebp+var_2D4]
cdq
add [ebp+var_3F8], eax
adc [ebp+var_3F4], edx
mov esi, [ebp+var_3F8]
mov edi, [ebp+var_3F4]
shld edi, esi, 6
shl esi, 6
add ecx, esi
adc ebx, edi
mov [ebp+var_44], cl
shrd ecx, ebx, 8
sar ebx, 8
mov [ebp+var_43], cl
shrd ecx, ebx, 8
sar ebx, 8
mov byte ptr [ebp+var_42], cl
shrd ecx, ebx, 8
sar ebx, 8
mov byte ptr [ebp+var_42+1], cl
lea edx, [ebp+var_60]
mov ecx, 20h
lea eax, [ebp+var_80]
call sub_804B732
push ecx
push 10h ; size_t
push [ebp+var_3C8] ; void *
lea edi, [ebp+var_80]
push edi ; void *
call _memcmp
add esp, 10h
test eax, eax
setz al
movzx eax, al
lea esp, [ebp-0Ch]
pop ebx
pop esi
pop edi
leave
retn
sub_804B82A endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_804B732 proc near

var_B0= dword ptr -0B0h
var_AC= byte ptr -0ACh
var_71= byte ptr -71h
var_70= dword ptr -70h
var_31= byte ptr -31h
var_30= dword ptr -30h
var_2C= byte ptr -2Ch

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0B0h
mov [ebp+var_B0], eax
mov esi, edx
mov ebx, ecx
lea edi, [ebp+var_AC]
lea eax, [ebp+var_2C]
push 20h ; size_t
push offset unk_804D430 ; void *
push eax ; void *
call _memcpy
add esp, 0Ch
push 80h ; size_t
push 0 ; int
push edi ; void *
call _memset
mov eax, ebx
and eax, 3Fh
add esp, 10h
cmp eax, 37h
ja short loc_804B79A
lea eax, ds:0[ebx*8]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [ebp+var_70], eax
mov eax, ebx
shr eax, 1Dh
mov [ebp+var_71], al
jmp short loc_804B7C9

loc_804B79A:
lea eax, ds:0[ebx*8]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [ebp+var_30], eax
mov eax, ebx
shr eax, 1Dh
mov [ebp+var_31], al
jmp short loc_804B7C9

loc_804B7B9:
mov edx, esi
lea eax, [ebp+var_2C]
call sub_804B5C8
add esi, 40h
sub ebx, 40h

loc_804B7C9:
cmp ebx, 40h
ja short loc_804B7B9
push edx
push ebx ; size_t
push esi ; void *
push edi ; void *
call _memcpy
mov byte ptr [edi+ebx], 80h
add esp, 10h
cmp ebx, 37h
jbe short loc_804B7F0
lea eax, [ebp+var_2C]
mov edx, edi
call sub_804B5C8
add edi, 40h

loc_804B7F0:
lea ebx, [ebp+var_2C]
mov edx, edi
mov eax, ebx
call sub_804B5C8
mov edx, 1
mov ecx, ebx

loc_804B803:
mov eax, [ecx+edx*4-4]
ror ax, 8
ror eax, 10h
ror ax, 8
mov ebx, [ebp+var_B0]
mov [ebx+edx*4-4], eax
inc edx
cmp edx, 9
jnz short loc_804B803
lea esp, [ebp-0Ch]
pop ebx
pop esi
pop edi
leave
retn
sub_804B732 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048C78 proc near
push ebp
mov ebp, esp
mov [eax], edx
xor edx, edx

loc_8048C7F:
mov dword ptr [eax+edx*4+4], 0
inc edx
cmp edx, 9
jnz short loc_8048C7F
leave
retn
sub_8048C78 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8049C3E proc near

var_128= dword ptr -128h
var_124= dword ptr -124h
var_110= dword ptr -110h
var_10C= dword ptr -10Ch
var_108= dword ptr -108h
var_104= dword ptr -104h
var_100= dword ptr -100h
var_FC= dword ptr -0FCh
var_E0= dword ptr -0E0h
var_DC= dword ptr -0DCh
var_D4= dword ptr -0D4h
var_D0= dword ptr -0D0h
var_CC= dword ptr -0CCh
var_C8= dword ptr -0C8h
var_C4= dword ptr -0C4h
var_C0= dword ptr -0C0h
var_BC= dword ptr -0BCh
var_B8= dword ptr -0B8h
var_B4= dword ptr -0B4h
var_B0= dword ptr -0B0h
var_AC= dword ptr -0ACh
var_A8= dword ptr -0A8h
var_A4= dword ptr -0A4h
var_9C= dword ptr -9Ch
var_98= dword ptr -98h
var_94= dword ptr -94h
var_90= dword ptr -90h
var_8C= dword ptr -8Ch
var_88= dword ptr -88h
var_84= dword ptr -84h
var_80= dword ptr -80h
var_7C= dword ptr -7Ch
var_78= dword ptr -78h
var_74= dword ptr -74h
var_70= dword ptr -70h
var_6C= dword ptr -6Ch
var_68= dword ptr -68h
var_64= dword ptr -64h
var_60= dword ptr -60h
var_5C= dword ptr -5Ch
var_58= dword ptr -58h
var_54= dword ptr -54h
var_50= dword ptr -50h
var_4C= dword ptr -4Ch
var_48= dword ptr -48h
var_44= dword ptr -44h
var_40= dword ptr -40h
var_3C= dword ptr -3Ch
var_38= dword ptr -38h
var_34= dword ptr -34h
var_30= dword ptr -30h
var_2C= dword ptr -2Ch
var_28= dword ptr -28h
var_24= dword ptr -24h
var_20= dword ptr -20h
var_1C= dword ptr -1Ch
var_18= dword ptr -18h
var_14= dword ptr -14h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 11Ch
mov [ebp+var_FC], eax
mov [ebp+var_100], edx
mov ecx, [edx+10h]
mov [ebp+var_90], ecx
mov eax, ecx
sar eax, 1Fh
mov [ebp+var_8C], eax
mov ecx, [edx+24h]
mov ebx, ecx
mov esi, ecx
sar esi, 1Fh
mov ecx, esi
imul ecx, ebx
shl ecx, 1
mov eax, ebx
mul ebx
mov ebx, eax
lea esi, [ecx+edx]
imul ecx, esi, 26h
mov eax, 26h
mul ebx
mov [ebp+var_98], eax
add edx, ecx
mov [ebp+var_94], edx
mov ecx, [ebp+var_8C]
imul ecx, [ebp+var_90]
shl ecx, 1
mov eax, [ebp+var_90]
mul eax
mov ebx, eax
lea esi, [ecx+edx]
add ebx, [ebp+var_98]
adc esi, [ebp+var_94]
mov [ebp+var_70], ebx
mov [ebp+var_6C], esi
mov edx, [ebp+var_100]
mov ecx, [edx+8]
mov esi, edx
mov eax, [edx+18h]
imul ecx
mov ecx, eax
mov ebx, edx
mov edi, esi
mov esi, [esi]
mov eax, [edi+20h]
imul esi
add ecx, eax
adc ebx, edx
add ecx, ecx
adc ebx, ebx
add [ebp+var_70], ecx
adc [ebp+var_6C], ebx
mov ecx, [edi+0Ch]
mov eax, [edi+14h]
imul ecx
mov ecx, eax
mov ebx, edx
mov esi, [edi+4]
mov eax, [edi+1Ch]
imul esi
add ecx, eax
adc ebx, edx
shld ebx, ecx, 2
shl ecx, 2
add [ebp+var_70], ecx
adc [ebp+var_6C], ebx
mov edx, [ebp+var_70]
and edx, 3FFFFFFh
mov [ebp+var_9C], edx
mov ebx, [ebp+var_FC]
mov [ebx+20h], edx
mov ecx, [edi+4]
mov eax, [edi+20h]
imul ecx
mov [ebp+var_68], eax
mov [ebp+var_64], edx
mov ecx, [edi]
mov eax, [edi+24h]
imul ecx
add [ebp+var_68], eax
adc [ebp+var_64], edx
mov ecx, [edi+0Ch]
mov eax, [edi+18h]
imul ecx
add [ebp+var_68], eax
adc [ebp+var_64], edx
mov ecx, [edi+8]
mov eax, [edi+1Ch]
imul ecx
add [ebp+var_68], eax
adc [ebp+var_64], edx
mov ecx, [edi+10h]
mov eax, [edi+14h]
imul ecx
add [ebp+var_68], eax
adc [ebp+var_64], edx
mov ebx, [ebp+var_68]
mov esi, [ebp+var_64]
add [ebp+var_68], ebx
adc [ebp+var_64], esi
mov esi, [ebp+var_70]
mov edi, [ebp+var_6C]
shrd esi, edi, 1Ah
sar edi, 1Ah
add [ebp+var_68], esi
adc [ebp+var_64], edi
mov ecx, [ebp+var_68]
and ecx, 1FFFFFFh
mov edi, [ebp+var_FC]
mov [edi+24h], ecx
mov eax, [ebp+var_100]
mov ecx, [eax]
mov [ebp+var_18], ecx
mov edx, ecx
sar edx, 1Fh
mov [ebp+var_14], edx
mov ecx, [eax+14h]
mov [ebp+var_88], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_84], ebx
mov ecx, [eax+0Ch]
mov ebx, eax
mov eax, [eax+1Ch]
imul ecx
mov esi, eax
mov edi, edx
mov ecx, [ebx+4]
mov eax, [ebx+24h]
imul ecx
add esi, eax
adc edi, edx
imul ecx, edi, 4Ch
mov eax, 4Ch
mul esi
mov [ebp+var_A8], eax
add edx, ecx
mov [ebp+var_A4], edx
mov ecx, [ebp+var_14]
imul ecx, [ebp+var_18]
shl ecx, 1
mov eax, [ebp+var_18]
mul eax
mov ebx, eax
lea esi, [ecx+edx]
add ebx, [ebp+var_A8]
adc esi, [ebp+var_A4]
mov [ebp+var_60], ebx
mov [ebp+var_5C], esi
mov edx, [ebp+var_100]
mov ecx, [edx+10h]
mov esi, edx
mov eax, [edx+18h]
imul ecx
mov ecx, eax
mov ebx, edx
mov edi, esi
mov esi, [esi+8]
mov eax, [edi+20h]
imul esi
add ecx, eax
adc ebx, edx
mov esi, [ebp+var_84]
imul esi, [ebp+var_88]
shl esi, 1
mov eax, [ebp+var_88]
mul eax
mov [ebp+var_B0], eax
add edx, esi
mov [ebp+var_AC], edx
add ecx, [ebp+var_B0]
adc ebx, [ebp+var_AC]
imul esi, ebx, 26h
mov eax, 26h
mul ecx
lea ebx, [esi+edx]
add [ebp+var_60], eax
adc [ebp+var_5C], ebx
mov ebx, [ebp+var_68]
mov esi, [ebp+var_64]
shrd ebx, esi, 19h
sar esi, 19h
imul ecx, esi, 13h
mov eax, 13h
mul ebx
lea esi, [ecx+edx]
add [ebp+var_60], eax
adc [ebp+var_5C], esi
mov ecx, [ebp+var_60]
and ecx, 3FFFFFFh
mov edx, [ebp+var_FC]
mov [edx], ecx
mov ebx, [ebp+var_60]
mov esi, [ebp+var_5C]
shrd ebx, esi, 1Ah
sar esi, 1Ah
mov [ebp+var_58], ebx
mov [ebp+var_54], esi
mov ecx, [edi+0Ch]
mov eax, [edi+20h]
imul ecx
mov ecx, eax
mov ebx, edx
mov esi, [edi+8]
mov eax, [edi+24h]
imul esi
add ecx, eax
adc ebx, edx
mov esi, [edi+14h]
mov eax, [edi+18h]
imul esi
add ecx, eax
adc ebx, edx
mov esi, [edi+10h]
mov eax, [edi+1Ch]
imul esi
add ecx, eax
adc ebx, edx
imul esi, ebx, 13h
mov eax, 13h
mul ecx
mov ecx, eax
lea ebx, [esi+edx]
mov esi, [edi]
mov eax, [edi+4]
imul esi
add ecx, eax
adc ebx, edx
add ecx, ecx
adc ebx, ebx
add [ebp+var_58], ecx
adc [ebp+var_54], ebx
mov ecx, [ebp+var_58]
and ecx, 1FFFFFFh
mov edx, [ebp+var_FC]
mov [edx+4], ecx
mov ecx, [edi+4]
mov [ebp+var_20], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_1C], ebx
mov ecx, [edi+18h]
mov ebx, ecx
mov esi, ecx
sar esi, 1Fh
mov ecx, [edi+20h]
mov eax, [edi+10h]
imul ecx
mov [ebp+var_B8], eax
mov [ebp+var_B4], edx
imul ecx, edx, 26h
mov eax, 26h
mul [ebp+var_B8]
mov [ebp+var_C0], eax
add edx, ecx
mov [ebp+var_BC], edx
mov ecx, esi
imul ecx, ebx
shl ecx, 1
mov eax, ebx
mul ebx
mov ebx, eax
lea esi, [ecx+edx]
imul ecx, esi, 13h
mov eax, 13h
mul ebx
mov ebx, eax
lea esi, [ecx+edx]
add ebx, [ebp+var_C0]
adc esi, [ebp+var_BC]
mov [ebp+var_50], ebx
mov [ebp+var_4C], esi
mov ecx, [ebp+var_1C]
imul ecx, [ebp+var_20]
shl ecx, 1
mov eax, [ebp+var_20]
mul eax
mov esi, eax
lea edi, [ecx+edx]
mov edx, [ebp+var_100]
mov ecx, [edx]
mov ebx, edx
mov eax, [edx+8]
imul ecx
add esi, eax
adc edi, edx
add esi, esi
adc edi, edi
add [ebp+var_50], esi
adc [ebp+var_4C], edi
mov ecx, [ebx+14h]
mov esi, ebx
mov eax, [ebx+1Ch]
imul ecx
mov ecx, eax
mov ebx, edx
mov edi, esi
mov esi, [esi+0Ch]
mov eax, [edi+24h]
imul esi
add ecx, eax
adc ebx, edx
imul esi, ebx, 4Ch
mov eax, 4Ch
mul ecx
lea ebx, [esi+edx]
add [ebp+var_50], eax
adc [ebp+var_4C], ebx
mov ebx, [ebp+var_58]
mov esi, [ebp+var_54]
shrd ebx, esi, 19h
sar esi, 19h
add [ebp+var_50], ebx
adc [ebp+var_4C], esi
mov ecx, [ebp+var_50]
and ecx, 3FFFFFFh
mov esi, [ebp+var_FC]
mov [esi+8], ecx
mov eax, [ebp+var_50]
mov edx, [ebp+var_4C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_48], eax
mov [ebp+var_44], edx
mov ecx, [edi+4]
mov eax, [edi+8]
imul ecx
mov [ebp+var_C8], eax
mov [ebp+var_C4], edx
mov ecx, [edi]
mov eax, [edi+0Ch]
imul ecx
add [ebp+var_C8], eax
adc [ebp+var_C4], edx
mov ecx, [edi+14h]
mov eax, [edi+20h]
imul ecx
mov ecx, eax
mov ebx, edx
mov esi, [edi+10h]
mov eax, [edi+24h]
imul esi
add ecx, eax
adc ebx, edx
mov esi, [edi+18h]
mov eax, [edi+1Ch]
imul esi
add ecx, eax
adc ebx, edx
imul esi, ebx, 13h
mov eax, 13h
mul ecx
lea ebx, [esi+edx]
add [ebp+var_C8], eax
adc [ebp+var_C4], ebx
mov ebx, [ebp+var_C8]
mov esi, [ebp+var_C4]
add [ebp+var_C8], ebx
adc [ebp+var_C4], esi
mov esi, [ebp+var_C8]
mov edi, [ebp+var_C4]
add [ebp+var_48], esi
adc [ebp+var_44], edi
mov ecx, [ebp+var_48]
and ecx, 1FFFFFFh
mov edi, [ebp+var_FC]
mov [edi+0Ch], ecx
mov eax, [ebp+var_100]
mov ecx, [eax+8]
mov ebx, ecx
mov esi, ecx
sar esi, 1Fh
mov ecx, [eax+1Ch]
mov [ebp+var_80], ecx
mov edx, ecx
sar edx, 1Fh
mov [ebp+var_7C], edx
mov ecx, esi
imul ecx, ebx
shl ecx, 1
mov eax, ebx
mul ebx
mov [ebp+var_D0], eax
add edx, ecx
mov [ebp+var_CC], edx
mov ecx, 2
mov esi, [ebp+var_100]
mov eax, [esi]
imul ecx
mov ecx, eax
mov esi, [esi+10h]
mov edi, esi
sar edi, 1Fh
imul edx, esi
mov eax, edi
imul eax, ecx
add edx, eax
mov [ebp+var_D4], edx
mov eax, ecx
mul esi
mov ecx, eax
mov ebx, edx
add ebx, [ebp+var_D4]
add ecx, [ebp+var_D0]
adc ebx, [ebp+var_CC]
mov [ebp+var_40], ecx
mov [ebp+var_3C], ebx
mov edx, [ebp+var_100]
mov ecx, [edx+0Ch]
mov esi, edx
mov eax, [edx+4]
imul ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 2
shl ecx, 2
add [ebp+var_40], ecx
adc [ebp+var_3C], ebx
mov ecx, [esi+24h]
mov eax, [esi+14h]
imul ecx
mov ecx, eax
imul esi, edx, 4Ch
mov eax, 4Ch
mul ecx
lea ebx, [esi+edx]
add [ebp+var_40], eax
adc [ebp+var_3C], ebx
mov ecx, [ebp+var_7C]
imul ecx, [ebp+var_80]
shl ecx, 1
mov eax, [ebp+var_80]
mul eax
mov esi, eax
lea edi, [ecx+edx]
mov edx, [ebp+var_100]
mov ecx, [edx+18h]
mov eax, [edx+20h]
imul ecx
mov [ebp+var_128], eax
mov [ebp+var_124], edx
add [ebp+var_128], esi
adc [ebp+var_124], edi
imul esi, [ebp+var_124], 26h
mov eax, 26h
mul [ebp+var_128]
lea ebx, [esi+edx]
add [ebp+var_40], eax
adc [ebp+var_3C], ebx
mov ebx, [ebp+var_48]
mov esi, [ebp+var_44]
shrd ebx, esi, 19h
sar esi, 19h
add [ebp+var_40], ebx
adc [ebp+var_3C], esi
mov ecx, [ebp+var_40]
and ecx, 3FFFFFFh
mov esi, [ebp+var_FC]
mov [esi+10h], ecx
mov eax, [ebp+var_40]
mov edx, [ebp+var_3C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_38], eax
mov [ebp+var_34], edx
mov edx, [ebp+var_100]
mov ecx, [edx+4]
mov ebx, edx
mov eax, [edx+10h]
imul ecx
mov [ebp+var_E0], eax
mov [ebp+var_DC], edx
mov ecx, [ebx]
mov esi, ebx
mov eax, [ebx+14h]
imul ecx
add [ebp+var_E0], eax
adc [ebp+var_DC], edx
mov ecx, [esi+8]
mov eax, [esi+0Ch]
imul ecx
add [ebp+var_E0], eax
adc [ebp+var_DC], edx
mov ecx, [esi+1Ch]
mov eax, [esi+20h]
imul ecx
mov ecx, eax
mov ebx, edx
mov edx, esi
mov esi, [esi+18h]
mov eax, [edx+24h]
imul esi
add ecx, eax
adc ebx, edx
imul esi, ebx, 13h
mov eax, 13h
mul ecx
lea ebx, [esi+edx]
add [ebp+var_E0], eax
adc [ebp+var_DC], ebx
mov ebx, [ebp+var_E0]
mov esi, [ebp+var_DC]
add [ebp+var_E0], ebx
adc [ebp+var_DC], esi
mov esi, [ebp+var_E0]
mov edi, [ebp+var_DC]
add [ebp+var_38], esi
adc [ebp+var_34], edi
mov ecx, [ebp+var_38]
and ecx, 1FFFFFFh
mov edi, [ebp+var_FC]
mov [edi+14h], ecx
mov eax, [ebp+var_100]
mov ecx, [eax+0Ch]
mov esi, ecx
mov edi, ecx
sar edi, 1Fh
mov ecx, [eax+20h]
mov [ebp+var_78], ecx
mov edx, ecx
sar edx, 1Fh
mov [ebp+var_74], edx
mov ecx, [eax+8]
mov ebx, eax
mov eax, [eax+10h]
imul ecx
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
mov ecx, [ebx]
mov eax, [ebx+18h]
imul ecx
add [ebp+var_30], eax
adc [ebp+var_2C], edx
mov ecx, edi
imul ecx, esi
shl ecx, 1
mov eax, esi
mul esi
lea esi, [ecx+edx]
add [ebp+var_30], eax
adc [ebp+var_2C], esi
mov ebx, [ebp+var_30]
mov esi, [ebp+var_2C]
add [ebp+var_30], ebx
adc [ebp+var_2C], esi
mov esi, [ebp+var_100]
mov ecx, [esi+24h]
mov eax, [esi+1Ch]
imul ecx
mov ecx, eax
imul esi, edx, 13h
mov eax, 13h
mul ecx
mov ecx, eax
lea ebx, [esi+edx]
mov edx, [ebp+var_100]
mov esi, [edx+4]
mov edi, edx
mov eax, [edx+14h]
imul esi
add ecx, eax
adc ebx, edx
shld ebx, ecx, 2
shl ecx, 2
add [ebp+var_30], ecx
adc [ebp+var_2C], ebx
mov ecx, [ebp+var_74]
imul ecx, [ebp+var_78]
shl ecx, 1
mov eax, [ebp+var_78]
mul eax
mov ebx, eax
lea esi, [ecx+edx]
imul ecx, esi, 13h
mov eax, 13h
mul ebx
lea esi, [ecx+edx]
add [ebp+var_30], eax
adc [ebp+var_2C], esi
mov ebx, [ebp+var_38]
mov esi, [ebp+var_34]
shrd ebx, esi, 19h
sar esi, 19h
add [ebp+var_30], ebx
adc [ebp+var_2C], esi
mov ecx, [ebp+var_30]
and ecx, 3FFFFFFh
mov esi, [ebp+var_FC]
mov [esi+18h], ecx
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_28], eax
mov [ebp+var_24], edx
mov ecx, [edi+4]
mov eax, [edi+18h]
imul ecx
mov ebx, eax
mov esi, edx
mov ecx, [edi]
mov eax, [edi+1Ch]
imul ecx
add ebx, eax
adc esi, edx
mov ecx, [edi+0Ch]
mov eax, [edi+10h]
imul ecx
add ebx, eax
adc esi, edx
mov ecx, [edi+8]
mov eax, [edi+14h]
imul ecx
add ebx, eax
adc esi, edx
mov ecx, [edi+24h]
mov eax, [edi+20h]
imul ecx
mov [ebp+var_108], eax
mov [ebp+var_104], edx
imul edi, edx, 13h
mov eax, 13h
mul [ebp+var_108]
mov [ebp+var_110], eax
add edx, edi
mov [ebp+var_10C], edx
add ebx, [ebp+var_110]
adc esi, [ebp+var_10C]
add ebx, ebx
adc esi, esi
add [ebp+var_28], ebx
adc [ebp+var_24], esi
mov edx, [ebp+var_28]
and edx, 1FFFFFFh
mov ebx, [ebp+var_FC]
mov [ebx+1Ch], edx
mov ecx, [ebp+var_28]
mov ebx, [ebp+var_24]
shrd ecx, ebx, 19h
sar ebx, 19h
mov eax, [ebp+var_9C]
cdq
add ecx, eax
adc ebx, edx
mov edx, ecx
and edx, 3FFFFFFh
mov esi, [ebp+var_FC]
mov [esi+20h], edx
shrd ecx, ebx, 1Ah
sar ebx, 1Ah
add [esi+24h], ecx
mov eax, esi
add esp, 11Ch
pop ebx
pop esi
pop edi
leave
retn
sub_8049C3E endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048D4C proc near

var_108= dword ptr -108h
var_104= dword ptr -104h
var_100= dword ptr -100h
var_FC= dword ptr -0FCh
var_F8= dword ptr -0F8h
var_F4= dword ptr -0F4h
var_F0= dword ptr -0F0h
var_EC= dword ptr -0ECh
var_E8= dword ptr -0E8h
var_E4= dword ptr -0E4h
var_E0= dword ptr -0E0h
var_DC= dword ptr -0DCh
var_D8= dword ptr -0D8h
var_D4= dword ptr -0D4h
var_D0= dword ptr -0D0h
var_CC= dword ptr -0CCh
var_C8= dword ptr -0C8h
var_C4= dword ptr -0C4h
var_C0= dword ptr -0C0h
var_BC= dword ptr -0BCh
var_B8= dword ptr -0B8h
var_B4= dword ptr -0B4h
var_B0= dword ptr -0B0h
var_AC= dword ptr -0ACh
var_A8= dword ptr -0A8h
var_A4= dword ptr -0A4h
var_A0= dword ptr -0A0h
var_9C= dword ptr -9Ch
var_98= dword ptr -98h
var_94= dword ptr -94h
var_90= dword ptr -90h
var_8C= dword ptr -8Ch
var_88= dword ptr -88h
var_84= dword ptr -84h
var_80= dword ptr -80h
var_7C= dword ptr -7Ch
var_78= dword ptr -78h
var_74= dword ptr -74h
var_70= dword ptr -70h
var_6C= dword ptr -6Ch
var_68= dword ptr -68h
var_64= dword ptr -64h
var_60= dword ptr -60h
var_5C= dword ptr -5Ch
var_58= dword ptr -58h
var_54= dword ptr -54h
var_50= dword ptr -50h
var_4C= dword ptr -4Ch
var_48= dword ptr -48h
var_44= dword ptr -44h
var_40= dword ptr -40h
var_3C= dword ptr -3Ch
var_38= dword ptr -38h
var_34= dword ptr -34h
var_30= dword ptr -30h
var_2C= dword ptr -2Ch
var_28= dword ptr -28h
var_24= dword ptr -24h
var_20= dword ptr -20h
var_1C= dword ptr -1Ch
var_18= dword ptr -18h
var_14= dword ptr -14h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0FCh
mov [ebp+var_104], eax
mov [ebp+var_108], edx
mov [ebp+var_68], ecx
mov eax, ecx
sar eax, 1Fh
mov [ebp+var_64], eax
mov ecx, [edx+20h]
mov esi, ecx
mov edi, ecx
sar edi, 1Fh
mov ecx, [ebp+var_68]
imul ecx, edi
mov ebx, [ebp+var_64]
imul ebx, esi
add ecx, ebx
mov eax, [ebp+var_68]
mul esi
mov [ebp+var_60], eax
add edx, ecx
mov [ebp+var_5C], edx
mov esi, [ebp+var_60]
and esi, 3FFFFFFh
mov edx, [ebp+var_104]
mov [edx+20h], esi
mov eax, [ebp+var_60]
mov edx, [ebp+var_5C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_58], eax
mov [ebp+var_54], edx
mov edx, [ebp+var_108]
mov ecx, [edx+24h]
mov [ebp+var_70], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_6C], ebx
mov ecx, [ebp+var_6C]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_70]
add ecx, ebx
mov eax, [ebp+var_70]
mul [ebp+var_68]
mov [ebp+var_78], eax
add edx, ecx
mov [ebp+var_74], edx
mov eax, [ebp+var_78]
mov edx, [ebp+var_74]
add [ebp+var_58], eax
adc [ebp+var_54], edx
mov ecx, [ebp+var_58]
and ecx, 1FFFFFFh
mov edx, [ebp+var_104]
mov [edx+24h], ecx
mov eax, [ebp+var_58]
mov edx, [ebp+var_54]
shrd eax, edx, 19h
sar edx, 19h
mov [ebp+var_80], eax
mov [ebp+var_7C], edx
imul ebx, edx, 13h
mov ecx, 13h
mov eax, [ebp+var_80]
mul ecx
mov [ebp+var_88], eax
add edx, ebx
mov [ebp+var_84], edx
mov edx, [ebp+var_108]
mov ecx, [edx]
mov [ebp+var_90], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_8C], ebx
mov ecx, [ebp+var_8C]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_90]
add ecx, ebx
mov eax, [ebp+var_90]
mul [ebp+var_68]
mov [ebp+var_98], eax
add edx, ecx
mov [ebp+var_94], edx
mov eax, [ebp+var_88]
mov edx, [ebp+var_84]
add eax, [ebp+var_98]
adc edx, [ebp+var_94]
mov [ebp+var_50], eax
mov [ebp+var_4C], edx
mov ecx, [ebp+var_50]
and ecx, 3FFFFFFh
mov edx, [ebp+var_104]
mov [edx], ecx
mov eax, [ebp+var_50]
mov edx, [ebp+var_4C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_48], eax
mov [ebp+var_44], edx
mov edx, [ebp+var_108]
mov ecx, [edx+4]
mov [ebp+var_A0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_9C], ebx
mov ecx, [ebp+var_9C]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_A0]
add ecx, ebx
mov eax, [ebp+var_A0]
mul [ebp+var_68]
mov [ebp+var_A8], eax
add edx, ecx
mov [ebp+var_A4], edx
mov eax, [ebp+var_A8]
mov edx, [ebp+var_A4]
add [ebp+var_48], eax
adc [ebp+var_44], edx
mov ecx, [ebp+var_48]
and ecx, 1FFFFFFh
mov edx, [ebp+var_104]
mov [edx+4], ecx
mov eax, [ebp+var_48]
mov edx, [ebp+var_44]
shrd eax, edx, 19h
sar edx, 19h
mov [ebp+var_40], eax
mov [ebp+var_3C], edx
mov edx, [ebp+var_108]
mov ecx, [edx+8]
mov [ebp+var_B0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_AC], ebx
mov ecx, [ebp+var_AC]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_B0]
add ecx, ebx
mov eax, [ebp+var_B0]
mul [ebp+var_68]
mov [ebp+var_B8], eax
add edx, ecx
mov [ebp+var_B4], edx
mov eax, [ebp+var_B8]
mov edx, [ebp+var_B4]
add [ebp+var_40], eax
adc [ebp+var_3C], edx
mov ecx, [ebp+var_40]
and ecx, 3FFFFFFh
mov edx, [ebp+var_104]
mov [edx+8], ecx
mov eax, [ebp+var_40]
mov edx, [ebp+var_3C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_38], eax
mov [ebp+var_34], edx
mov edx, [ebp+var_108]
mov ecx, [edx+0Ch]
mov [ebp+var_C0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_BC], ebx
mov ecx, [ebp+var_BC]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_C0]
add ecx, ebx
mov eax, [ebp+var_C0]
mul [ebp+var_68]
mov [ebp+var_C8], eax
add edx, ecx
mov [ebp+var_C4], edx
mov eax, [ebp+var_C8]
mov edx, [ebp+var_C4]
add [ebp+var_38], eax
adc [ebp+var_34], edx
mov ecx, [ebp+var_38]
and ecx, 1FFFFFFh
mov edx, [ebp+var_104]
mov [edx+0Ch], ecx
mov eax, [ebp+var_38]
mov edx, [ebp+var_34]
shrd eax, edx, 19h
sar edx, 19h
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
mov edx, [ebp+var_108]
mov ecx, [edx+10h]
mov [ebp+var_D0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_CC], ebx
mov ecx, [ebp+var_CC]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_D0]
add ecx, ebx
mov eax, [ebp+var_D0]
mul [ebp+var_68]
mov [ebp+var_D8], eax
add edx, ecx
mov [ebp+var_D4], edx
mov eax, [ebp+var_D8]
mov edx, [ebp+var_D4]
add [ebp+var_30], eax
adc [ebp+var_2C], edx
mov ecx, [ebp+var_30]
and ecx, 3FFFFFFh
mov edx, [ebp+var_104]
mov [edx+10h], ecx
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_28], eax
mov [ebp+var_24], edx
mov edx, [ebp+var_108]
mov ecx, [edx+14h]
mov [ebp+var_E0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_DC], ebx
mov ecx, [ebp+var_DC]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_E0]
add ecx, ebx
mov eax, [ebp+var_E0]
mul [ebp+var_68]
mov [ebp+var_E8], eax
add edx, ecx
mov [ebp+var_E4], edx
mov eax, [ebp+var_E8]
mov edx, [ebp+var_E4]
add [ebp+var_28], eax
adc [ebp+var_24], edx
mov ecx, [ebp+var_28]
and ecx, 1FFFFFFh
mov edx, [ebp+var_104]
mov [edx+14h], ecx
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
shrd eax, edx, 19h
sar edx, 19h
mov [ebp+var_20], eax
mov [ebp+var_1C], edx
mov edx, [ebp+var_108]
mov ecx, [edx+18h]
mov [ebp+var_F0], ecx
mov ebx, ecx
sar ebx, 1Fh
mov [ebp+var_EC], ebx
mov ecx, [ebp+var_EC]
imul ecx, [ebp+var_68]
mov ebx, [ebp+var_64]
imul ebx, [ebp+var_F0]
add ecx, ebx
mov eax, [ebp+var_F0]
mul [ebp+var_68]
mov [ebp+var_F8], eax
add edx, ecx
mov [ebp+var_F4], edx
mov eax, [ebp+var_F8]
mov edx, [ebp+var_F4]
add [ebp+var_20], eax
adc [ebp+var_1C], edx
mov ecx, [ebp+var_20]
and ecx, 3FFFFFFh
mov edx, [ebp+var_104]
mov [edx+18h], ecx
mov eax, [ebp+var_20]
mov edx, [ebp+var_1C]
shrd eax, edx, 1Ah
sar edx, 1Ah
mov [ebp+var_18], eax
mov [ebp+var_14], edx
mov ebx, [ebp+var_108]
mov edx, [ebx+1Ch]
mov [ebp+var_100], edx
mov eax, edx
sar eax, 1Fh
mov [ebp+var_FC], eax
mov edi, [ebp+var_FC]
imul edi, [ebp+var_68]
mov ecx, [ebp+var_64]
imul ecx, [ebp+var_100]
add edi, ecx
mov eax, [ebp+var_100]
mul [ebp+var_68]
lea ebx, [edi+edx]
add [ebp+var_18], eax
adc [ebp+var_14], ebx
mov edx, [ebp+var_18]
and edx, 1FFFFFFh
mov ebx, [ebp+var_104]
mov [ebx+1Ch], edx
mov ecx, [ebp+var_18]
mov ebx, [ebp+var_14]
shrd ecx, ebx, 19h
sar ebx, 19h
mov edi, esi
sar edi, 1Fh
add ecx, esi
adc ebx, edi
mov edx, ecx
and edx, 3FFFFFFh
mov eax, [ebp+var_104]
mov [eax+20h], edx
shrd ecx, ebx, 1Ah
sar ebx, 1Ah
add [eax+24h], ecx
add esp, 0FCh
pop ebx
pop esi
pop edi
leave
retn
sub_8048D4C endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048C90 proc near
push ebp
mov ebp, esp
push ebx
mov ebx, [edx]
add ebx, [ecx]
mov [eax], ebx
mov ebx, [edx+4]
add ebx, [ecx+4]
mov [eax+4], ebx
mov ebx, [edx+8]
add ebx, [ecx+8]
mov [eax+8], ebx
mov ebx, [edx+0Ch]
add ebx, [ecx+0Ch]
mov [eax+0Ch], ebx
mov ebx, [edx+10h]
add ebx, [ecx+10h]
mov [eax+10h], ebx
mov ebx, [edx+14h]
add ebx, [ecx+14h]
mov [eax+14h], ebx
mov ebx, [edx+18h]
add ebx, [ecx+18h]
mov [eax+18h], ebx
mov ebx, [edx+1Ch]
add ebx, [ecx+1Ch]
mov [eax+1Ch], ebx
mov ebx, [edx+20h]
add ebx, [ecx+20h]
mov [eax+20h], ebx
mov edx, [edx+24h]
add edx, [ecx+24h]
mov [eax+24h], edx
pop ebx
leave
retn
sub_8048C90 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8049244 proc near

var_1C8= dword ptr -1C8h
var_1C4= dword ptr -1C4h
var_1A0= dword ptr -1A0h
var_19C= dword ptr -19Ch
var_170= qword ptr -170h
var_108= dword ptr -108h
var_104= dword ptr -104h
var_8C= dword ptr -8Ch
var_68= dword ptr -68h
var_64= dword ptr -64h
var_60= qword ptr -60h
var_58= qword ptr -58h
var_50= qword ptr -50h
var_48= qword ptr -48h
var_40= qword ptr -40h
var_38= qword ptr -38h
var_30= qword ptr -30h
var_28= qword ptr -28h
var_20= qword ptr -20h
var_18= qword ptr -18h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 1C4h
mov [ebp+var_1C4], eax
mov [ebp+var_1C8], edx
mov ebx, [edx]
mov eax, [ecx+20h]
imul ebx
mov dword ptr [ebp+var_60], eax
mov dword ptr [ebp+var_60+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+8]
mov eax, [ecx+18h]
imul ebx
add dword ptr [ebp+var_60], eax
adc dword ptr [ebp+var_60+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+20h]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_60], eax
adc dword ptr [ebp+var_60+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+18h]
mov eax, [ecx+8]
imul ebx
add dword ptr [ebp+var_60], eax
adc dword ptr [ebp+var_60+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+10h]
mov eax, [ecx+10h]
imul ebx
add dword ptr [ebp+var_60], eax
adc dword ptr [ebp+var_60+4], edx
mov eax, 26h
mov edi, [ebp+var_1C8]
imul dword ptr [edi+24h]
mov ebx, eax
mov edi, [ecx+24h]
mov [ebp+var_68], edi
mov eax, edi
sar eax, 1Fh
mov [ebp+var_64], eax
mov edi, [ebp+var_68]
imul edi, edx
mov edx, [ebp+var_64]
imul edx, ebx
add edi, edx
mov eax, [ebp+var_68]
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_60], eax
adc dword ptr [ebp+var_60+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+0Ch]
mov eax, [ecx+14h]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+4]
mov eax, [ecx+1Ch]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+4]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+14h]
mov eax, [ecx+0Ch]
imul edi
add ebx, eax
adc esi, edx
add ebx, ebx
adc esi, esi
add dword ptr [ebp+var_60], ebx
adc dword ptr [ebp+var_60+4], esi
mov edx, dword ptr [ebp+var_60]
and edx, 3FFFFFFh
mov [ebp+var_8C], edx
mov edi, [ebp+var_1C4]
mov [edi+20h], edx
mov eax, [ebp+var_1C8]
mov ebx, [eax+4]
mov eax, [ecx+20h]
imul ebx
mov dword ptr [ebp+var_58], eax
mov dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx]
mov eax, [ecx+24h]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+24h]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+0Ch]
mov eax, [ecx+18h]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+8]
mov eax, [ecx+1Ch]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+14h]
mov eax, [ecx+10h]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+10h]
mov eax, [ecx+14h]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+1Ch]
mov eax, [ecx+8]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+18h]
mov eax, [ecx+0Ch]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+20h]
mov eax, [ecx+4]
imul ebx
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov eax, dword ptr [ebp+var_60]
mov edx, dword ptr [ebp+var_60+4]
shrd eax, edx, 1Ah
sar edx, 1Ah
add dword ptr [ebp+var_58], eax
adc dword ptr [ebp+var_58+4], edx
mov ebx, dword ptr [ebp+var_58]
and ebx, 1FFFFFFh
mov [edi+24h], ebx
mov edx, [ebp+var_1C8]
mov ebx, [edx+0Ch]
mov eax, [ecx+1Ch]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+4]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+0Ch]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+14h]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+4]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 26h
mov eax, 26h
mul ebx
mov ebx, eax
lea esi, [edi+edx]
mov edx, [ebp+var_1C8]
mov edi, [edx]
mov eax, [ecx]
imul edi
mov dword ptr [ebp+var_50], eax
mov dword ptr [ebp+var_50+4], edx
add dword ptr [ebp+var_50], ebx
adc dword ptr [ebp+var_50+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+8]
mov eax, [ecx+20h]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+10h]
mov eax, [ecx+18h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+20h]
mov eax, [ecx+8]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+18h]
mov eax, [ecx+10h]
imul edi
add ebx, eax
adc esi, edx
mov eax, dword ptr [ebp+var_58]
mov edx, dword ptr [ebp+var_58+4]
shrd eax, edx, 19h
sar edx, 19h
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_50], eax
adc dword ptr [ebp+var_50+4], esi
mov ebx, dword ptr [ebp+var_50]
and ebx, 3FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi]
mov eax, [ecx+4]
imul ebx
mov dword ptr [ebp+var_48], eax
mov dword ptr [ebp+var_48+4], edx
mov ebx, [edi+4]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_48], eax
adc dword ptr [ebp+var_48+4], edx
mov ebx, [edi+0Ch]
mov eax, [ecx+20h]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [edi+8]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+14h]
mov eax, [ecx+18h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+10h]
mov eax, [ecx+1Ch]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+10h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+18h]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+8]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+20h]
mov eax, [ecx+0Ch]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_48], eax
adc dword ptr [ebp+var_48+4], esi
mov eax, dword ptr [ebp+var_50]
mov edx, dword ptr [ebp+var_50+4]
shrd eax, edx, 1Ah
sar edx, 1Ah
add dword ptr [ebp+var_48], eax
adc dword ptr [ebp+var_48+4], edx
mov ebx, dword ptr [ebp+var_48]
and ebx, 1FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+4], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi]
mov eax, [ecx+8]
imul ebx
mov dword ptr [ebp+var_40], eax
mov dword ptr [ebp+var_40+4], edx
mov ebx, 2
mov eax, [edi+4]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [ecx+4]
mov [ebp+var_108], edi
mov edx, edi
sar edx, 1Fh
mov [ebp+var_104], edx
mov edi, [ebp+var_108]
imul edi, esi
mov eax, [ebp+var_104]
imul eax, ebx
add edi, eax
mov eax, [ebp+var_108]
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_40], eax
adc dword ptr [ebp+var_40+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+8]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_40], eax
adc dword ptr [ebp+var_40+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+18h]
mov eax, [ecx+18h]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+10h]
mov eax, [ecx+20h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+20h]
mov eax, [ecx+10h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_40], eax
adc dword ptr [ebp+var_40+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+14h]
mov eax, [ecx+1Ch]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+0Ch]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+0Ch]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 26h
mov eax, 26h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_40], eax
adc dword ptr [ebp+var_40+4], esi
mov eax, dword ptr [ebp+var_48]
mov edx, dword ptr [ebp+var_48+4]
shrd eax, edx, 19h
sar edx, 19h
add dword ptr [ebp+var_40], eax
adc dword ptr [ebp+var_40+4], edx
mov ebx, dword ptr [ebp+var_40]
and ebx, 3FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+8], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi+4]
mov eax, [ecx+8]
imul ebx
mov dword ptr [ebp+var_38], eax
mov dword ptr [ebp+var_38+4], edx
mov ebx, [edi]
mov eax, [ecx+0Ch]
imul ebx
add dword ptr [ebp+var_38], eax
adc dword ptr [ebp+var_38+4], edx
mov ebx, [edi+0Ch]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_38], eax
adc dword ptr [ebp+var_38+4], edx
mov ebx, [edi+8]
mov eax, [ecx+4]
imul ebx
add dword ptr [ebp+var_38], eax
adc dword ptr [ebp+var_38+4], edx
mov ebx, [edi+14h]
mov eax, [ecx+20h]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [edi+10h]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+18h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+18h]
mov eax, [ecx+1Ch]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+10h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+20h]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_38], eax
adc dword ptr [ebp+var_38+4], esi
mov eax, dword ptr [ebp+var_40]
mov edx, dword ptr [ebp+var_40+4]
shrd eax, edx, 1Ah
sar edx, 1Ah
add dword ptr [ebp+var_38], eax
adc dword ptr [ebp+var_38+4], edx
mov ebx, dword ptr [ebp+var_38]
and ebx, 1FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+0Ch], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi+8]
mov eax, [ecx+8]
imul ebx
mov dword ptr [ebp+var_30], eax
mov dword ptr [ebp+var_30+4], edx
mov ebx, [edi]
mov eax, [ecx+10h]
imul ebx
add dword ptr [ebp+var_30], eax
adc dword ptr [ebp+var_30+4], edx
mov ebx, [edi+10h]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_30], eax
adc dword ptr [ebp+var_30+4], edx
mov ebx, [edi+20h]
mov eax, [ecx+18h]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [edi+18h]
mov eax, [ecx+20h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_30], eax
adc dword ptr [ebp+var_30+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+0Ch]
mov eax, [ecx+4]
imul ebx
mov dword ptr [ebp+var_170], eax
mov dword ptr [ebp+var_170+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+4]
mov eax, [ecx+0Ch]
imul ebx
add dword ptr [ebp+var_170], eax
adc dword ptr [ebp+var_170+4], edx
mov edx, [ebp+var_1C8]
mov ebx, [edx+1Ch]
mov eax, [ecx+1Ch]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+14h]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_170], eax
adc dword ptr [ebp+var_170+4], esi
mov eax, dword ptr [ebp+var_170]
mov edx, dword ptr [ebp+var_170+4]
add dword ptr [ebp+var_170], eax
adc dword ptr [ebp+var_170+4], edx
mov eax, dword ptr [ebp+var_170]
mov edx, dword ptr [ebp+var_170+4]
add dword ptr [ebp+var_30], eax
adc dword ptr [ebp+var_30+4], edx
mov eax, dword ptr [ebp+var_38]
mov edx, dword ptr [ebp+var_38+4]
shrd eax, edx, 19h
sar edx, 19h
add dword ptr [ebp+var_30], eax
adc dword ptr [ebp+var_30+4], edx
mov ebx, dword ptr [ebp+var_30]
and ebx, 3FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+10h], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi+4]
mov eax, [ecx+10h]
imul ebx
mov dword ptr [ebp+var_28], eax
mov dword ptr [ebp+var_28+4], edx
mov ebx, [edi]
mov eax, [ecx+14h]
imul ebx
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, [edi+14h]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, [edi+0Ch]
mov eax, [ecx+8]
imul ebx
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, [edi+8]
mov eax, [ecx+0Ch]
imul ebx
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, [edi+10h]
mov eax, [ecx+4]
imul ebx
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, [edi+1Ch]
mov eax, [ecx+20h]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [edi+18h]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+24h]
mov eax, [ecx+18h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+20h]
mov eax, [ecx+1Ch]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 13h
mov eax, 13h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], esi
mov eax, dword ptr [ebp+var_30]
mov edx, dword ptr [ebp+var_30+4]
shrd eax, edx, 1Ah
sar edx, 1Ah
add dword ptr [ebp+var_28], eax
adc dword ptr [ebp+var_28+4], edx
mov ebx, dword ptr [ebp+var_28]
and ebx, 1FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+14h], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi+8]
mov eax, [ecx+10h]
imul ebx
mov dword ptr [ebp+var_20], eax
mov dword ptr [ebp+var_20+4], edx
mov ebx, [edi]
mov eax, [ecx+18h]
imul ebx
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], edx
mov ebx, [edi+18h]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], edx
mov ebx, [edi+10h]
mov eax, [ecx+8]
imul ebx
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], edx
mov eax, 13h
imul dword ptr [edi+20h]
mov ebx, eax
mov esi, edx
mov edi, [ecx+20h]
mov [ebp+var_1A0], edi
mov edx, edi
sar edx, 1Fh
mov [ebp+var_19C], edx
mov edi, [ebp+var_1A0]
imul edi, esi
mov eax, [ebp+var_19C]
imul eax, ebx
add edi, eax
mov eax, [ebp+var_1A0]
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+24h]
mov eax, [ecx+1Ch]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+1Ch]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
imul edi, esi, 26h
mov eax, 26h
mul ebx
lea esi, [edi+edx]
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], esi
mov edx, [ebp+var_1C8]
mov ebx, [edx+0Ch]
mov eax, [ecx+0Ch]
imul ebx
mov ebx, eax
mov esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+4]
mov eax, [ecx+14h]
imul edi
add ebx, eax
adc esi, edx
mov edx, [ebp+var_1C8]
mov edi, [edx+14h]
mov eax, [ecx+4]
imul edi
add ebx, eax
adc esi, edx
add ebx, ebx
adc esi, esi
add dword ptr [ebp+var_20], ebx
adc dword ptr [ebp+var_20+4], esi
mov eax, dword ptr [ebp+var_28]
mov edx, dword ptr [ebp+var_28+4]
shrd eax, edx, 19h
sar edx, 19h
add dword ptr [ebp+var_20], eax
adc dword ptr [ebp+var_20+4], edx
mov ebx, dword ptr [ebp+var_20]
and ebx, 3FFFFFFh
mov edx, [ebp+var_1C4]
mov [edx+18h], ebx
mov edi, [ebp+var_1C8]
mov ebx, [edi+4]
mov eax, [ecx+18h]
imul ebx
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
mov ebx, [edi]
mov eax, [ecx+1Ch]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+1Ch]
mov eax, [ecx]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+0Ch]
mov eax, [ecx+10h]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+8]
mov eax, [ecx+14h]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+14h]
mov eax, [ecx+8]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+10h]
mov eax, [ecx+0Ch]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+18h]
mov eax, [ecx+4]
imul ebx
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov ebx, [edi+24h]
mov eax, [ecx+20h]
imul ebx
mov ebx, eax
mov esi, edx
mov edi, [edi+20h]
mov eax, [ecx+24h]
imul edi
add ebx, eax
adc esi, edx
imul ecx, esi, 13h
mov eax, 13h
mul ebx
lea esi, [ecx+edx]
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], esi
mov eax, dword ptr [ebp+var_20]
mov edx, dword ptr [ebp+var_20+4]
shrd eax, edx, 1Ah
sar edx, 1Ah
add dword ptr [ebp+var_18], eax
adc dword ptr [ebp+var_18+4], edx
mov edx, dword ptr [ebp+var_18]
and edx, 1FFFFFFh
mov edi, [ebp+var_1C4]
mov [edi+1Ch], edx
mov ecx, dword ptr [ebp+var_18]
mov ebx, dword ptr [ebp+var_18+4]
shrd ecx, ebx, 19h
sar ebx, 19h
mov eax, [ebp+var_8C]
cdq
add ecx, eax
adc ebx, edx
mov edx, ecx
and edx, 3FFFFFFh
mov edi, [ebp+var_1C4]
mov [edi+20h], edx
shrd ecx, ebx, 1Ah
sar ebx, 1Ah
add [edi+24h], ecx
mov eax, edi
add esp, 1C4h
pop ebx
pop esi
pop edi
leave
retn
sub_8049244 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_804A4A4 proc near

var_EC= dword ptr -0ECh
var_E8= dword ptr -0E8h
var_E4= dword ptr -0E4h
var_E0= dword ptr -0E0h
var_D4= byte ptr -0D4h
var_AC= byte ptr -0ACh
var_84= byte ptr -84h
var_5C= byte ptr -5Ch
var_34= byte ptr -34h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0E4h
mov [ebp+var_E4], eax
mov [ebp+var_E8], edx
mov [ebp+var_EC], ecx
lea edi, [ebp+var_5C]
mov eax, edi
call sub_8049C3E
lea ebx, [ebp+var_84]
mov edx, edi
mov eax, ebx
call sub_8049C3E
lea esi, [ebp+var_34]
mov edx, ebx
mov eax, esi
call sub_8049C3E
mov ecx, [ebp+var_E8]
mov edx, esi
mov eax, ebx
call sub_8049244
mov ecx, edi
mov edx, ebx
mov eax, esi
call sub_8049244
mov edx, esi
mov eax, edi
call sub_8049C3E
lea esi, [ebp+var_AC]
mov ecx, ebx
mov edx, edi
mov eax, esi
call sub_8049244
mov edx, esi
mov eax, edi
call sub_8049C3E
mov edx, edi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
mov eax, edi
call sub_8049C3E
mov edx, edi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
mov eax, edi
call sub_8049C3E
mov ecx, esi
mov edx, edi
mov eax, ebx
call sub_8049244
mov edx, ebx
mov eax, edi
call sub_8049C3E
mov edx, edi
mov eax, esi
call sub_8049C3E
mov [ebp+var_E0], 1
mov ebx, edi

loc_804A571:
mov edx, esi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
mov eax, esi
call sub_8049C3E
inc [ebp+var_E0]
cmp [ebp+var_E0], 5
jnz short loc_804A571
lea ecx, [ebp+var_84]
mov edx, esi
mov eax, ebx
call sub_8049244
mov edx, ebx
mov eax, esi
call sub_8049C3E
lea ebx, [ebp+var_D4]
mov edx, esi
mov eax, ebx
call sub_8049C3E
mov esi, 1
mov edi, ebx

loc_804A5C0:
mov edx, edi
lea eax, [ebp+var_AC]
call sub_8049C3E
lea edx, [ebp+var_AC]
mov eax, edi
call sub_8049C3E
inc esi
cmp esi, 0Ah
jnz short loc_804A5C0
lea ebx, [ebp+var_5C]
mov ecx, ebx
mov edx, edi
lea eax, [ebp+var_AC]
call sub_8049244
xor edi, edi
mov esi, ebx

loc_804A5F6:
lea edx, [ebp+var_AC]
mov eax, esi
call sub_8049C3E
mov edx, esi
lea eax, [ebp+var_AC]
call sub_8049C3E
inc edi
cmp edi, 5
jnz short loc_804A5F6
lea ebx, [ebp+var_84]
mov ecx, ebx
lea edx, [ebp+var_AC]
mov eax, esi
call sub_8049244
mov edx, esi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
lea eax, [ebp+var_AC]
call sub_8049C3E
mov esi, 1
lea edi, [ebp+var_AC]

loc_804A64C:
mov edx, edi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
mov eax, edi
call sub_8049C3E
inc esi
cmp esi, 19h
jnz short loc_804A64C
lea ecx, [ebp+var_5C]
mov edx, edi
mov eax, ebx
call sub_8049244
mov edx, ebx
mov eax, edi
call sub_8049C3E
lea ebx, [ebp+var_D4]
mov edx, edi
mov eax, ebx
call sub_8049C3E
mov si, 1
lea edi, [ebp+var_AC]

loc_804A692:
mov edx, ebx
mov eax, edi
call sub_8049C3E
mov edx, edi
mov eax, ebx
call sub_8049C3E
inc esi
cmp esi, 32h
jnz short loc_804A692
lea ecx, [ebp+var_84]
mov edx, ebx
mov eax, edi
call sub_8049244
xor ebx, ebx
lea edi, [ebp+var_AC]
lea esi, [ebp+var_D4]

loc_804A6C7:
mov edx, edi
mov eax, esi
call sub_8049C3E
mov edx, esi
mov eax, edi
call sub_8049C3E
inc ebx
cmp ebx, 19h
jnz short loc_804A6C7
lea esi, [ebp+var_5C]
lea ebx, [ebp+var_84]
mov ecx, esi
mov edx, edi
mov eax, ebx
call sub_8049244
mov edx, ebx
mov eax, esi
call sub_8049C3E
mov edx, esi
mov eax, ebx
call sub_8049C3E
cmp [ebp+var_EC], 0
jz short loc_804A718
mov ecx, ebx
mov edx, [ebp+var_E8]
jmp short loc_804A738

loc_804A718:
mov edx, ebx
mov eax, esi
call sub_8049C3E
mov edx, esi
mov eax, ebx
call sub_8049C3E
mov edx, ebx
mov eax, esi
call sub_8049C3E
lea ecx, [ebp+var_34]
mov edx, esi

loc_804A738:
mov eax, [ebp+var_E4]
call sub_8049244
add esp, 0E4h
pop ebx
pop esi
pop edi
leave
retn
sub_804A4A4 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048C0A proc near
push ebp
mov ebp, esp
push ebx
mov ebx, [eax+24h]
cmp dword ptr [eax], 3FFFFECh
setnle cl
mov edx, [eax+4]
and edx, [eax+0Ch]
and edx, [eax+14h]
and edx, [eax+1Ch]
and edx, ebx
cmp edx, 1FFFFFFh
setz dl
and ecx, edx
mov edx, [eax+8]
and edx, [eax+10h]
and edx, [eax+18h]
and edx, [eax+20h]
xor eax, eax
cmp edx, 3FFFFFFh
setz al
and eax, ecx
xor edx, edx
cmp ebx, 1FFFFFFh
setnle dl
or eax, edx
pop ebx
leave
retn
sub_8048C0A endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048CEE proc near
push ebp
mov ebp, esp
push ebx
mov ebx, [edx]
sub ebx, [ecx]
mov [eax], ebx
mov ebx, [edx+4]
sub ebx, [ecx+4]
mov [eax+4], ebx
mov ebx, [edx+8]
sub ebx, [ecx+8]
mov [eax+8], ebx
mov ebx, [edx+0Ch]
sub ebx, [ecx+0Ch]
mov [eax+0Ch], ebx
mov ebx, [edx+10h]
sub ebx, [ecx+10h]
mov [eax+10h], ebx
mov ebx, [edx+14h]
sub ebx, [ecx+14h]
mov [eax+14h], ebx
mov ebx, [edx+18h]
sub ebx, [ecx+18h]
mov [eax+18h], ebx
mov ebx, [edx+1Ch]
sub ebx, [ecx+1Ch]
mov [eax+1Ch], ebx
mov ebx, [edx+20h]
sub ebx, [ecx+20h]
mov [eax+20h], ebx
mov edx, [edx+24h]
sub edx, [ecx+24h]
mov [eax+24h], edx
pop ebx
leave
retn
sub_8048CEE endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_8048C5C proc near
push ebp
mov ebp, esp
push ebx
mov ebx, eax
mov ecx, 1

loc_8048C67:
mov eax, [edx+ecx*4-4]
mov [ebx+ecx*4-4], eax
inc ecx
cmp ecx, 0Bh
jnz short loc_8048C67
pop ebx
leave
retn
sub_8048C5C endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_804A74E proc near

arg_0= dword ptr 8

push ebp
mov ebp, esp
push edi
push esi
push ebx
mov edi, edx
mov esi, ecx
mov ebx, [ebp+arg_0]
mov ecx, ebx
mov edx, esi
call sub_8048C90
mov ecx, ebx
mov edx, esi
mov eax, edi
pop ebx
pop esi
pop edi
leave
jmp sub_8048CEE
sub_804A74E endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_804A774 proc near

var_18= dword ptr -18h
var_14= dword ptr -14h
var_10= dword ptr -10h
arg_0= dword ptr 8
arg_4= dword ptr 0Ch
arg_8= dword ptr 10h
arg_C= dword ptr 14h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0Ch
mov esi, eax
mov [ebp+var_10], edx
mov eax, [ebp+arg_0]
mov [ebp+var_14], eax
mov ebx, [ebp+arg_4]
mov edi, [ebp+arg_8]
mov eax, [ebp+arg_C]
mov [ebp+var_18], eax
mov eax, ebx
call sub_8049244
mov ecx, [ebp+var_14]
mov edx, esi
mov eax, edi
call sub_8049244
mov ecx, edi
mov edx, ebx
mov eax, esi
call sub_8048C90
mov ecx, edi
mov edx, ebx
mov eax, [ebp+var_10]
call sub_8048CEE
mov edx, esi
mov eax, ebx
call sub_8049C3E
mov edx, [ebp+var_10]
mov eax, esi
call sub_8049C3E
mov ecx, [ebp+var_18]
mov edx, esi
mov eax, edi
add esp, 0Ch
pop ebx
pop esi
pop edi
leave
jmp sub_8049244
sub_804A774 endp

;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;
; [00000010 BYTES: COLLAPSED FUNCTION memcmp. PRESS KEYPAD "+" TO EXPAND]
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;
; [00000010 BYTES: COLLAPSED FUNCTION memset. PRESS KEYPAD "+" TO EXPAND]
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;


; Attributes: bp-based frame

sub_804B5C8 proc near

var_16C= dword ptr -16Ch
var_168= dword ptr -168h
var_148= dword ptr -148h
var_13C= dword ptr -13Ch
var_138= dword ptr -138h
var_134= dword ptr -134h
var_130= dword ptr -130h
var_12C= dword ptr -12Ch
var_2C= dword ptr -2Ch
var_28= dword ptr -28h
var_24= dword ptr -24h
var_20= dword ptr -20h
var_1C= dword ptr -1Ch
var_18= dword ptr -18h
var_14= dword ptr -14h
var_10= dword ptr -10h

push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 140h
mov [ebp+var_138], eax
mov [ebp+var_13C], edx
lea eax, [ebp+var_2C]
push 20h ; size_t
push [ebp+var_138] ; void *
push eax ; void *
call _memcpy
xor edi, edi
add esp, 10h

loc_804B5F6:
mov ebx, [ebp+var_1C]
mov eax, [ebp+var_14]
mov [ebp+var_134], eax
mov ecx, [ebp+var_10]
add ecx, ds:dword_804D330[edi*4]
mov eax, ebx
ror eax, 0Bh
mov edx, ebx
ror edx, 6
xor eax, edx
mov edx, ebx
ror edx, 19h
xor eax, edx
add ecx, eax
mov eax, [ebp+var_134]
xor eax, [ebp+var_18]
and eax, ebx
xor eax, [ebp+var_134]
add ecx, eax
mov [ebp+var_130], ecx
cmp edi, 0Fh
ja short loc_804B65F
mov edx, [ebp+var_13C]
mov eax, [edx+edi*4]
ror ax, 8
ror eax, 10h
ror ax, 8
mov [ebp+edi*4+var_12C], eax
lea esi, [eax+ecx]
jmp short loc_804B6B0

loc_804B65F:
mov ebx, [ebp+edi*4+var_134]
mov esi, [ebp+edi*4+var_168]
mov ecx, [ebp+edi*4+var_16C]
add ecx, [ebp+edi*4+var_148]
mov eax, ebx
ror eax, 13h
mov edx, ebx
ror edx, 11h
xor eax, edx
shr ebx, 0Ah
xor eax, ebx
add ecx, eax
mov eax, esi
ror eax, 12h
mov edx, esi
ror edx, 7
xor eax, edx
shr esi, 3
xor eax, esi
add ecx, eax
mov [ebp+edi*4+var_12C], ecx
mov esi, [ebp+var_130]
add esi, ecx

loc_804B6B0:
mov ebx, [ebp+var_2C]
mov edx, [ebp+var_28]
mov ecx, edx
or ecx, ebx
and ecx, [ebp+var_24]
mov eax, edx
and eax, ebx
or ecx, eax
mov eax, [ebp+var_134]
mov [ebp+var_10], eax
mov eax, [ebp+var_18]
mov [ebp+var_14], eax
mov eax, [ebp+var_1C]
mov [ebp+var_18], eax
mov eax, esi
add eax, [ebp+var_20]
mov [ebp+var_1C], eax
mov eax, [ebp+var_24]
mov [ebp+var_20], eax
mov [ebp+var_24], edx
mov [ebp+var_28], ebx
mov eax, ebx
ror eax, 0Dh
mov edx, ebx
ror edx, 2
xor eax, edx
ror ebx, 16h
xor eax, ebx
add ecx, eax
add ecx, esi
mov [ebp+var_2C], ecx
inc edi
cmp edi, 40h
jnz loc_804B5F6
mov edx, 1
lea ecx, [ebp+var_2C]

loc_804B716:
mov eax, [ecx+edx*4-4]
mov ebx, [ebp+var_138]
add [ebx+edx*4-4], eax
inc edx
cmp edx, 9
jnz short loc_804B716
lea esp, [ebp-0Ch]
pop ebx
pop esi
pop edi
leave
retn
sub_804B5C8 endp
end start

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就会贴代码?
2009-11-4 16:55
0
游客
登录 | 注册 方可回帖
返回
//