Function at 0x6280a0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0xfc]
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x8c], 0
mov eax, 1
lea edx, [ebp - 0x74]
lea ecx, [ebp - 0x5c]
call fcn.0040e130
call fcn.0040fdf0
push eax
test eax, eax
jne 0x629f68
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x629f68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ecx, eax
mov dword [ebp - 0xf8], 0
cmp ecx, dword [ebp - 0xf8]
jl 0x628163
sub dword [ebp - 0xf8], 1
mov esi, esi
add dword [ebp - 0xf8], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
imul edx, dword [ebp - 0xf8], 0x30
cmp byte [eax + edx + 0x2c], 0
jne 0x62815b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul ebx, dword [ebp - 0xf8], 0x30
mov eax, dword [eax + 0xc]
mov dword [edx + ebx + 0x28], eax
cmp ecx, dword [ebp - 0xf8]
jg 0x62812c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x14], 0
je 0x628180
mov eax, dword [ebp - 0xf4]
sub eax, 2
cmp eax, 2
jae 0x628180
mov byte [ebp - 0x34], 1
jmp 0x628184
mov byte [ebp - 0x34], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 1
jne 0x62830e
cmp byte [ebp - 0x34], 0
je 0x628253
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, 0x10
mov ecx, eax
movzx eax, word [ecx]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ecx + 2]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ecx + 4]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ecx + 6]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x28], 1
sete al
push eax
cmp dword [ebp - 0xf4], 2
sete al
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [ebp - 0xfc]
mov cl, 0
call fcn.00624f60
jmp 0x629f68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, 0x10
mov ecx, eax
movzx eax, word [ecx]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ecx + 2]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ecx + 4]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ecx + 6]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x28], 1
sete al
push eax
push dword [ebp - 0xf4]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x15]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [ebp - 0xfc]
mov cl, 0
call fcn.00624ad0
jmp 0x629f68
push 0
lea eax, [ebp - 0x44]
push eax
mov ecx, 0
mov edx, 0
mov eax, 0
call fcn.005e5fb0
mov byte [ebp - 0x90], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ebx, eax
mov dword [ebp - 0xf8], 0
cmp ebx, dword [ebp - 0xf8]
jl 0x62848b
sub dword [ebp - 0xf8], 1
nop
add dword [ebp - 0xf8], 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0xfc]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
mov esi, dword [edx + eax]
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x1c]
mov ecx, eax
mov eax, esi
call fcn.0063fa80
test al, al
je 0x628444
mov eax, dword [ebp - 0x18]
add eax, 1
push eax
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x20]
add eax, 1
mov ecx, eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.005e5fb0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
lea edi, [edx + eax + 0x18]
lea esi, [ebp - 0x88]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov al, byte [ebp - 0x90]
test al, al
je 0x628404
mov byte [ebp - 0x90], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
lea edi, [ebp - 0x44]
lea esi, [edx + eax + 0x18]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x62847f
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x1c]
jle 0x628412
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x14]
jle 0x628420
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x20]
jg 0x628431
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x18]
jg 0x62847f
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x38], eax
jmp 0x62847f
push 0
lea eax, [ebp - 0x88]
push eax
mov ecx, 0
mov edx, 0
mov eax, 0
call fcn.005e5fb0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
lea edi, [edx + eax + 0x18]
lea esi, [ebp - 0x88]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [ebp - 0xf8]
jg 0x628358
mov al, byte [ebp - 0x90]
test al, al
jne 0x629f68
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
sub eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
sub eax, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x7c]
push eax
mov edx, 0x74d4ec
lea eax, [ebp - 8]
mov ecx, 1
call fcn.0040d0b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov edi, eax
mov dword [ebp - 0xf8], 0
cmp edi, dword [ebp - 0xf8]
jl 0x62857b
sub dword [ebp - 0xf8], 1
mov esi, esi
add dword [ebp - 0xf8], 1
mov esi, 0x74d4b8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
mov eax, dword [edx + eax]
lea edx, [ebp - 0x8c]
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 8]
imul ecx, dword [ebp - 0xf8], 0x30
mov ecx, dword [ebx + ecx]
mov ecx, dword [ecx]
call dword [ecx + 0x70]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 8]
imul ecx, dword [ebp - 0xf8], 0x14
lea eax, [eax + ecx + 0x10]
mov ecx, esi
call fcn.0040d090
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 2
shl eax, 1
mov edx, eax
mov ecx, dword [ebp - 8]
imul eax, dword [ebp - 0xf8], 0x14
lea eax, [ecx + eax]
call fcn.0040fe70
cmp edi, dword [ebp - 0xf8]
jg 0x628500
mov eax, dword [ebp - 4]
cmp byte [eax + 0x15], 0
je 0x6285a6
push dword [0x74d37c]
push dword [0x74d37c]
lea eax, [ebp - 0x80]
call fcn.005c0960
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x2c], eax
jmp 0x6285cc
fldz
lea esp, [esp - 4]
fstp dword [esp]
fldz
lea esp, [esp - 4]
fstp dword [esp]
lea eax, [ebp - 0x80]
call fcn.005c0960
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 1
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x7c]
push eax
mov edx, 0x74d544
lea eax, [ebp - 0x48]
mov ecx, 1
call fcn.0040d0b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x7c]
push eax
mov edx, 0x74d50c
lea eax, [ebp - 0xc]
mov ecx, 1
call fcn.0040d0b0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xec], eax
jl 0x629ed9
sub dword [ebp - 0xd4], 1
add dword [ebp - 0xd4], 1
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ebx, eax
mov dword [ebp - 0xf8], 0
cmp ebx, dword [ebp - 0xf8]
jl 0x628719
sub dword [ebp - 0xf8], 1
add dword [ebp - 0xf8], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
mov eax, dword [edx + eax + 0x1c]
cmp eax, dword [ebp - 0xd4]
jg 0x62870d
imul eax, dword [ebp - 0xf8], 0x30
mov eax, dword [edx + eax + 0x24]
cmp eax, dword [ebp - 0xd4]
jle 0x62870d
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xf8]
mov dword [edx + eax*4], ecx
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 1
shl eax, 1
mov edx, eax
mov ecx, dword [ebp - 8]
imul eax, dword [ebp - 0xf8], 0x14
mov eax, dword [ecx + eax]
mov cl, 0
call fcn.00403700
mov ecx, dword [ebp - 8]
imul edx, dword [ebp - 0xf8], 0x14
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ecx + edx + 4], eax
mov edx, dword [ebp - 8]
imul ecx, dword [ebp - 0xf8], 0x14
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [edx + ecx + 8], eax
cmp ebx, dword [ebp - 0xf8]
jg 0x62867c
cmp byte [ebp - 0x34], 0
je 0x62877f
mov dword [ebp - 0xe8], 0
sub dword [ebp - 0xe8], 1
add dword [ebp - 0xe8], 1
mov eax, dword [ebp - 0xe8]
lea eax, [eax*2 + 1]
mov dword [ebp - 0x7c], eax
fild dword [ebp - 0x7c]
fld xword [0x74d3d0]
fmulp st(1)
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x7c], eax
fild dword [ebp - 0x7c]
faddp st(1)
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x7c]
lea esp, [esp - 4]
fstp dword [esp]
mov eax, ebp
call fcn.00629fc0
cmp dword [ebp - 0xe8], 0xf
jl 0x628730
jmp 0x6287a2
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x7c], eax
fild dword [ebp - 0x7c]
fadd dword [0x74d380]
fsub dword [ebp - 0x2c]
lea esp, [esp - 4]
fstp dword [esp]
mov eax, ebp
call fcn.00629fc0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x6287b0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x20]
jle 0x6287be
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jg 0x629ec7
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, edx
add eax, 1
shl eax, 4
mov edx, eax
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
shl eax, 4
lea eax, [ebx + eax]
mov cl, 0
call fcn.00403700
cmp byte [ebp - 0x34], 0
je 0x628b67
mov eax, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xf8]
jl 0x628ece
sub dword [ebp - 0xf8], 1
nop
add dword [ebp - 0xf8], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xf8]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x14
lea eax, [ecx + eax]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xf8]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x30
lea eax, [ecx + eax]
mov edi, eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xb0]
cmp edx, dword [eax + 8]
jg 0x628b50
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx + 4]
cmp eax, dword [ebp - 0x1c]
jge 0x62889a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xb0]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x20]
jle 0x6288b4
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xb0]
mov dword [eax + 8], edx
cmp dword [edi + 8], 0
je 0x628a57
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 4]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx]
call dword [ebx + 0xc]
mov edx, dword [edi + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, edx
sub eax, ecx
shl eax, 1
mov ecx, dword [ebp - 0xb0]
add eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xb0]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc0], eax
cmp esi, dword [ebp - 0xc0]
jl 0x628b50
sub dword [ebp - 0xc0], 1
nop
add dword [ebp - 0xc0], 1
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc0]
sub edx, eax
mov eax, edx
shl eax, 4
lea eax, [ecx + eax]
mov ebx, eax
mov eax, dword [ebp - 0xc4]
cmp word [eax], 0
je 0x628a31
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
call edx
mov edx, eax
shr edx, 0x10
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x50], dx
mov edx, eax
shr edx, 8
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x4e], dx
mov edx, eax
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x4c], dx
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
lea eax, [edx + eax]
mov word [ebp - 0x4a], ax
mov eax, dword [ebp - 0xc4]
movzx edx, word [eax]
movzx eax, word [ebp - 0x4a]
imul eax, edx
shr eax, 0x14
mov dword [ebp - 0xcc], eax
test dword [ebp - 0xcc], 0xffffffff
je 0x628a3f
movzx eax, word [ebp - 0x50]
mov edx, dword [ebp - 0xcc]
imul edx, eax
mov eax, edx
add dword [ebx], eax
movzx eax, word [ebp - 0x4e]
mov edx, dword [ebp - 0xcc]
imul edx, eax
mov eax, edx
add dword [ebx + 4], eax
movzx eax, word [ebp - 0x4c]
mov edx, dword [ebp - 0xcc]
imul edx, eax
mov eax, edx
add dword [ebx + 8], eax
mov eax, dword [ebp - 0xcc]
add dword [ebx + 0xc], eax
jmp 0x628a3f
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
call edx
add dword [ebp - 0xc4], 2
cmp esi, dword [ebp - 0xc0]
jg 0x628938
jmp 0x628b50
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, edx
shl eax, 1
mov ecx, dword [ebp - 0xb0]
add eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc0], eax
cmp edx, dword [ebp - 0xc0]
jl 0x628b50
sub dword [ebp - 0xc0], 1
mov esi, esi
add dword [ebp - 0xc0], 1
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc0]
sub ecx, eax
mov eax, ecx
shl eax, 4
lea eax, [ebx + eax]
mov ecx, eax
mov eax, dword [ebp - 0xc4]
cmp word [eax], 0
je 0x628b3d
mov eax, dword [ebp - 0xc4]
movzx ebx, word [eax]
movzx eax, word [ebp - 0x4a]
imul eax, ebx
shr eax, 0x14
mov dword [ebp - 0xcc], eax
test dword [ebp - 0xcc], 0xffffffff
je 0x628b3d
movzx eax, word [ebp - 0x50]
mov ebx, dword [ebp - 0xcc]
imul ebx, eax
mov eax, ebx
add dword [ecx], eax
movzx ebx, word [ebp - 0x4e]
mov eax, dword [ebp - 0xcc]
imul eax, ebx
add dword [ecx + 4], eax
movzx eax, word [ebp - 0x4c]
mov ebx, dword [ebp - 0xcc]
imul ebx, eax
mov eax, ebx
add dword [ecx + 8], eax
mov eax, dword [ebp - 0xcc]
add dword [ecx + 0xc], eax
add dword [ebp - 0xc4], 2
cmp edx, dword [ebp - 0xc0]
jg 0x628ab0
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xf8]
jg 0x62882c
jmp 0x628ece
mov eax, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xf8]
jl 0x628ece
sub dword [ebp - 0xf8], 1
mov esi, esi
add dword [ebp - 0xf8], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xf8]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x14
lea eax, [ecx + eax]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xf8]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x30
lea eax, [ecx + eax]
mov edi, eax
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xac]
cmp edx, dword [eax + 8]
jg 0x628ebc
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 4]
cmp eax, dword [ebp - 0x1c]
jge 0x628c06
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xac]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x20]
jle 0x628c20
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xac]
mov dword [edx + 8], eax
cmp dword [edi + 8], 0
je 0x628dbf
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 4]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx]
call dword [ebx + 0xc]
mov edx, dword [edi + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, edx
shl eax, 1
mov ecx, dword [ebp - 0xac]
add eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xac]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc0], eax
cmp esi, dword [ebp - 0xc0]
jl 0x628ebc
sub dword [ebp - 0xc0], 1
nop
add dword [ebp - 0xc0], 1
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc0]
sub eax, edx
shl eax, 4
lea eax, [ecx + eax]
mov ebx, eax
mov eax, dword [ebp - 0xc4]
cmp word [eax], 0
je 0x628d99
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
call edx
mov edx, eax
shr edx, 0x10
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x50], dx
mov edx, eax
shr edx, 8
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x4e], dx
mov edx, eax
and edx, 0xff
mov dx, word [edx*2 + 0x778f70]
mov word [ebp - 0x4c], dx
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
lea eax, [edx + eax]
mov word [ebp - 0x4a], ax
mov eax, dword [ebp - 0xc4]
movzx edx, word [eax]
movzx eax, word [ebp - 0x4a]
imul eax, edx
shr eax, 0x10
mov dword [ebp - 0xcc], eax
test dword [ebp - 0xcc], 0xffffffff
je 0x628da7
movzx edx, word [ebp - 0x50]
mov eax, dword [ebp - 0xcc]
imul eax, edx
add dword [ebx], eax
movzx eax, word [ebp - 0x4e]
mov edx, dword [ebp - 0xcc]
imul edx, eax
mov eax, edx
add dword [ebx + 4], eax
movzx eax, word [ebp - 0x4c]
mov edx, dword [ebp - 0xcc]
imul edx, eax
mov eax, edx
add dword [ebx + 8], eax
mov eax, dword [ebp - 0xcc]
add dword [ebx + 0xc], eax
jmp 0x628da7
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
call edx
add dword [ebp - 0xc4], 2
cmp esi, dword [ebp - 0xc0]
jg 0x628ca4
jmp 0x628ebc
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, edx
sub eax, ecx
mov edx, eax
shl edx, 1
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
lea eax, [edx + ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc0], eax
cmp edx, dword [ebp - 0xc0]
jl 0x628ebc
sub dword [ebp - 0xc0], 1
nop
add dword [ebp - 0xc0], 1
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc0]
sub eax, ecx
shl eax, 4
lea eax, [ebx + eax]
mov ecx, eax
mov eax, dword [ebp - 0xc4]
cmp word [eax], 0
je 0x628ea9
mov eax, dword [ebp - 0xc4]
movzx ebx, word [eax]
movzx eax, word [ebp - 0x4a]
imul eax, ebx
shr eax, 0x10
mov dword [ebp - 0xcc], eax
test dword [ebp - 0xcc], 0xffffffff
je 0x628ea9
movzx eax, word [ebp - 0x50]
mov ebx, dword [ebp - 0xcc]
imul ebx, eax
mov eax, ebx
add dword [ecx], eax
movzx eax, word [ebp - 0x4e]
mov ebx, dword [ebp - 0xcc]
imul ebx, eax
mov eax, ebx
add dword [ecx + 4], eax
movzx eax, word [ebp - 0x4c]
mov ebx, dword [ebp - 0xcc]
imul ebx, eax
mov eax, ebx
add dword [ecx + 8], eax
mov eax, dword [ebp - 0xcc]
add dword [ecx + 0xc], eax
add dword [ebp - 0xc4], 2
cmp edx, dword [ebp - 0xc0]
jg 0x628e1c
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xf8]
jg 0x628b98
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xfc]
mov ecx, dword [ecx]
call dword [ecx + 0xd0]
mov edx, dword [ebp - 0x24]
shl edx, 2
lea eax, [eax + edx]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc0]
sub edx, eax
mov eax, edx
shl eax, 4
lea eax, [ecx + eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x629cf4
sub eax, 1
je 0x629eb8
sub eax, 1
je 0x62996a
sub eax, 1
je 0x62938b
sub eax, 1
je 0x629b34
jmp 0x629ec7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe4], eax
add dword [ebp - 0xc8], 0x10
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0xc], 0
je 0x62937d
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx]
mov edx, 0
div ebx
mov word [ebp - 0x50], ax
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx + 4]
mov edx, 0
div ebx
mov word [ebp - 0x4e], ax
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx + 8]
mov edx, 0
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x628fcb
mov byte [ebp - 0xf0], 0xff
jmp 0x628fd4
mov al, byte [ecx + 0xc]
mov byte [ebp - 0xf0], al
movzx eax, byte [ebp - 0xf0]
mov edx, eax
shl eax, 8
lea eax, [eax + edx]
mov word [ebp - 0x4a], ax
mov dword [ebp - 0xd0], 1
jmp 0x629009
add dword [ebp - 0xc0], 1
add dword [ebp - 0xc8], 0x10
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jge 0x62904a
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x62904a
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 8]
jne 0x62904a
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jne 0x62904a
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
cmp eax, dword [ecx]
je 0x628ff4
cmp dword [ebp - 0xd0], 1
jne 0x6292dd
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + 3]
test dl, dl
je 0x62906e
sub dl, 0xff
je 0x6290ba
jmp 0x629185
movzx eax, word [ebp - 0x50]
mov dl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 2], dl
movzx eax, word [ebp - 0x4e]
mov dl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 1], dl
movzx eax, word [ebp - 0x4c]
mov dl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax], dl
mov dl, byte [ebp - 0xf0]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 3], dl
jmp 0x629369
movzx eax, byte [ebp - 0xf0]
mov edx, eax
cmp edx, 0x80
jb 0x6290ce
add edx, 1
mov ecx, dword [ebp - 0xd8]
movzx eax, byte [ecx + 2]
movzx ecx, word [eax*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
movzx eax, word [ebp - 0x50]
mov ecx, edx
imul ecx, eax
lea eax, [ebx + ecx]
shr eax, 8
mov cl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 2], cl
mov ecx, dword [ebp - 0xd8]
movzx eax, byte [ecx + 1]
movzx ecx, word [eax*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
movzx eax, word [ebp - 0x4e]
mov ecx, edx
imul ecx, eax
lea eax, [ebx + ecx]
shr eax, 8
mov cl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 1], cl
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax]
movzx ecx, word [ecx*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
movzx ecx, word [ebp - 0x4c]
mov eax, edx
imul eax, ecx
lea eax, [ebx + eax]
shr eax, 8
mov dl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax], dl
jmp 0x629369
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
not al
movzx ecx, al
mov al, byte [ebp - 0xf0]
not al
and eax, 0xff
mov edx, eax
imul edx, ecx
mov eax, 0xfe01
sub eax, edx
mov dword [ebp - 0x9c], eax
shr eax, 1
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax + 3]
mov al, byte [ebp - 0xf0]
not al
and eax, 0xff
imul eax, edx
mov edi, eax
movzx eax, byte [ebp - 0xf0]
shl eax, 8
movzx edx, byte [ebp - 0xf0]
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 0x9c]
shr eax, 7
add eax, dword [ebp - 0x9c]
shr eax, 8
mov dword [ebp - 0x94], eax
shl dword [ebp - 0x94], 0x18
mov edx, dword [ebp - 0xd8]
movzx eax, byte [edx + 2]
movzx eax, word [eax*2 + 0x778f70]
mov ecx, edi
imul ecx, eax
movzx edx, word [ebp - 0x50]
mov eax, esi
imul eax, edx
lea eax, [ecx + eax]
add eax, dword [ebp - 0x98]
mov edx, 0
div dword [ebp - 0x9c]
movzx eax, byte [eax + 0x779370]
mov ebx, eax
shl ebx, 0x10
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax + 1]
movzx eax, word [edx*2 + 0x778f70]
mov edx, edi
imul edx, eax
movzx eax, word [ebp - 0x4e]
mov ecx, esi
imul ecx, eax
lea eax, [edx + ecx]
add eax, dword [ebp - 0x98]
mov edx, 0
div dword [ebp - 0x9c]
movzx eax, byte [eax + 0x779370]
shl eax, 8
mov ecx, eax
or ecx, ebx
mov edx, dword [ebp - 0xd8]
movzx eax, byte [edx]
movzx eax, word [eax*2 + 0x778f70]
mov ebx, edi
imul ebx, eax
movzx edx, word [ebp - 0x4c]
mov eax, esi
imul eax, edx
lea eax, [ebx + eax]
add eax, dword [ebp - 0x98]
mov edx, 0
div dword [ebp - 0x9c]
movzx eax, byte [eax + 0x779370]
or eax, ecx
mov edx, eax
or edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xd8]
mov dword [eax], edx
jmp 0x629369
mov esi, dword [ebp - 0xd8]
cmp word [ebp - 0x4a], 0x100
jb 0x629369
cmp word [ebp - 0x4a], 0xff00
jb 0x62933a
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
mov byte [ebp - 0x7a], al
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
mov byte [ebp - 0x7b], al
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
mov byte [ebp - 0x7c], al
movzx eax, word [ebp - 0x4a]
shr eax, 8
mov byte [ebp - 0x79], al
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xd0]
mov eax, esi
call fcn.00403760
jmp 0x629369
mov edx, dword [ebp - 0xd0]
lea eax, [edx - 1]
mov ebx, eax
test eax, eax
jl 0x629369
add ebx, 1
sub ebx, 1
movzx eax, word [ebp - 0x4a]
shr eax, 8
mov cl, al
lea edx, [ebp - 0x50]
mov eax, esi
call fcn.00634f30
add esi, 4
test ebx, ebx
jg 0x62934c
mov eax, dword [ebp - 0xd0]
lea edx, [eax - 1]
mov eax, edx
shl eax, 2
add dword [ebp - 0xd8], eax
add dword [ebp - 0xc0], 1
add dword [ebp - 0xd8], 4
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jle 0x628f58
jmp 0x629ec7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe4], eax
add dword [ebp - 0xc8], 0x10
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0xc], 0
je 0x62995c
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x50], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 4]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4e], ax
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx + 8]
mov edx, 0
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x62941d
mov byte [ebp - 0xf0], 0xff
jmp 0x629426
mov al, byte [ecx + 0xc]
mov byte [ebp - 0xf0], al
movzx eax, byte [ebp - 0xf0]
mov edx, eax
shl eax, 8
lea eax, [eax + edx]
mov word [ebp - 0x4a], ax
mov dword [ebp - 0xd0], 1
jmp 0x62945d
add dword [ebp - 0xc0], 1
add dword [ebp - 0xc8], 0x10
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jge 0x62949e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x62949e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 8]
jne 0x62949e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jne 0x62949e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
cmp edx, dword [ecx]
je 0x629448
cmp dword [ebp - 0xd0], 1
jne 0x6297f5
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + 3]
test dl, dl
je 0x629539
sub dl, 0xff
je 0x62954c
jmp 0x629651
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xd8]
mov dword [edx], eax
jmp 0x62995c
mov eax, dword [ebp - 0xb4]
shr eax, 0x18
and eax, 0xff
mov edx, eax
cmp edx, 0x80
jb 0x629567
add edx, 1
mov ecx, dword [ebp - 0xd8]
movzx eax, byte [ecx + 2]
movzx ecx, word [eax*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
mov eax, dword [ebp - 0xb4]
shr eax, 0x10
and eax, 0xff
movzx eax, word [eax*2 + 0x778f70]
mov ecx, edx
imul ecx, eax
lea eax, [ebx + ecx]
shr eax, 8
mov cl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 2], cl
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax + 1]
movzx ecx, word [ecx*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
mov eax, dword [ebp - 0xb4]
shr eax, 8
and eax, 0xff
movzx ecx, word [eax*2 + 0x778f70]
mov eax, edx
imul eax, ecx
lea eax, [ebx + eax]
shr eax, 8
mov cl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0xd8]
movzx eax, byte [ecx]
movzx ecx, word [eax*2 + 0x778f70]
mov eax, 0x100
sub eax, edx
mov ebx, eax
imul ebx, ecx
mov eax, dword [ebp - 0xb4]
and eax, 0xff
movzx ecx, word [eax*2 + 0x778f70]
mov eax, edx
imul eax, ecx
lea eax, [ebx + eax]
shr eax, 8
mov dl, byte [eax + 0x779370]
mov eax, dword [ebp - 0xd8]
mov byte [eax], dl
jmp 0x62995c
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
not al
movzx ecx, al
mov eax, dword [ebp - 0xb4]
shr eax, 0x18
and eax, 0xff
not al
and eax, 0xff
mov edx, eax
imul edx, ecx
mov eax, 0xfe01
sub eax, edx
mov dword [ebp - 0xa8], eax
shr eax, 1
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax + 3]
mov eax, dword [ebp - 0xb4]
shr eax, 0x18
and eax, 0xff
not al
and eax, 0xff
imul eax, edx
mov edi, eax
mov eax, dword [ebp - 0xb4]
shr eax, 0x18
and eax, 0xff
mov dl, al
movzx eax, dl
shl eax, 8
and edx, 0xff
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 0xa8]
shr eax, 7
add eax, dword [ebp - 0xa8]
shr eax, 8
mov dword [ebp - 0xa0], eax
shl dword [ebp - 0xa0], 0x18
mov edx, dword [ebp - 0xd8]
movzx eax, byte [edx + 2]
movzx eax, word [eax*2 + 0x778f70]
mov edx, edi
imul edx, eax
mov eax, dword [ebp - 0xb4]
shr eax, 0x10
and eax, 0xff
movzx ecx, word [eax*2 + 0x778f70]
mov eax, esi
imul eax, ecx
lea eax, [edx + eax]
add eax, dword [ebp - 0xa4]
mov edx, 0
div dword [ebp - 0xa8]
movzx eax, byte [eax + 0x779370]
mov ebx, eax
shl ebx, 0x10
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax + 1]
movzx eax, word [edx*2 + 0x778f70]
mov edx, edi
imul edx, eax
mov eax, dword [ebp - 0xb4]
shr eax, 8
and eax, 0xff
movzx eax, word [eax*2 + 0x778f70]
mov ecx, esi
imul ecx, eax
lea eax, [edx + ecx]
add eax, dword [ebp - 0xa4]
mov edx, 0
div dword [ebp - 0xa8]
movzx eax, byte [eax + 0x779370]
shl eax, 8
mov ecx, eax
or ecx, ebx
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax]
movzx eax, word [edx*2 + 0x778f70]
mov edx, edi
imul edx, eax
mov eax, dword [ebp - 0xb4]
and eax, 0xff
movzx ebx, word [eax*2 + 0x778f70]
mov eax, esi
imul eax, ebx
lea eax, [edx + eax]
add eax, dword [ebp - 0xa4]
mov edx, 0
div dword [ebp - 0xa8]
movzx eax, byte [eax + 0x779370]
or eax, ecx
or eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xd8]
mov dword [edx], eax
jmp 0x62995c
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov edi, edx
mov esi, dword [ebp - 0xd8]
mov eax, edi
shr eax, 0x18
and eax, 0xff
test al, 0xff
je 0x629948
mov eax, edi
shr eax, 0x18
and eax, 0xff
cmp al, 0xff
jne 0x6298a2
mov ecx, edi
mov edx, dword [ebp - 0xd0]
mov eax, esi
call fcn.00403760
jmp 0x629948
mov eax, edi
shr eax, 0x10
and eax, 0xff
mov ax, word [eax*2 + 0x778f70]
mov word [ebp - 0x88], ax
mov eax, edi
shr eax, 8
and eax, 0xff
mov ax, word [eax*2 + 0x778f70]
mov word [ebp - 0x86], ax
mov eax, edi
and eax, 0xff
mov ax, word [eax*2 + 0x778f70]
mov word [ebp - 0x84], ax
mov eax, edi
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
lea eax, [edx + eax]
mov word [ebp - 0x82], ax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xd0]
lea edx, [eax - 1]
mov ebx, edx
test edx, edx
jl 0x629948
add ebx, 1
nop
sub ebx, 1
mov eax, edi
shr eax, 0x18
and eax, 0xff
mov cl, al
lea edx, [ebp - 0x80]
mov eax, esi
call fcn.00634f30
add esi, 4
test ebx, ebx
jg 0x629928
mov eax, dword [ebp - 0xd0]
lea edx, [eax - 1]
mov eax, edx
shl eax, 2
add dword [ebp - 0xd8], eax
add dword [ebp - 0xc0], 1
add dword [ebp - 0xd8], 4
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jle 0x6293a4
jmp 0x629ec7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe4], eax
add dword [ebp - 0xc8], 0x10
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0xc], 0
je 0x629b26
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx]
mov edx, 0
div ebx
mov word [ebp - 0x50], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 4]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4e], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 8]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x6299fd
mov byte [ebp - 0xf0], 0xff
jmp 0x629a06
mov al, byte [ecx + 0xc]
mov byte [ebp - 0xf0], al
movzx eax, byte [ebp - 0xf0]
mov edx, eax
shl edx, 8
lea eax, [edx + eax]
mov word [ebp - 0x4a], ax
mov dword [ebp - 0xd0], 1
jmp 0x629a3d
add dword [ebp - 0xc0], 1
add dword [ebp - 0xc8], 0x10
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jge 0x629a7e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x629a7e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 8]
cmp eax, dword [ecx + 8]
jne 0x629a7e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jne 0x629a7e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
cmp eax, dword [ecx]
je 0x629a28
mov edx, dword [ebp - 0xd0]
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and ecx, 0xff00ffff
or ecx, eax
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and ecx, 0xffff00ff
or ecx, eax
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
and eax, 0xff
and ecx, 0xffffff00
or ecx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and ecx, 0xffffff
or ecx, eax
mov eax, ecx
mov edi, dword [ebp - 0xd8]
jmp 0x629b10
mov ecx, edi
mov ebx, dword [ecx]
mov esi, eax
xor esi, ebx
mov dword [ecx], esi
add edi, 4
sub edx, 1
test edx, edx
jg 0x629b00
mov edx, dword [ebp - 0xd0]
lea eax, [edx - 1]
shl eax, 2
add dword [ebp - 0xd8], eax
add dword [ebp - 0xc0], 1
add dword [ebp - 0xd8], 4
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jle 0x629984
jmp 0x629ec7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe4], eax
add dword [ebp - 0xc8], 0x10
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0xc], 0
je 0x629ce6
mov ebx, dword [ecx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [ecx]
mov edx, 0
div ebx
mov word [ebp - 0x50], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 4]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4e], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 8]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x629bc9
mov byte [ebp - 0xf0], 0xff
jmp 0x629bd2
mov al, byte [ecx + 0xc]
mov byte [ebp - 0xf0], al
movzx eax, byte [ebp - 0xf0]
mov edx, eax
shl eax, 8
lea eax, [eax + edx]
mov word [ebp - 0x4a], ax
mov dword [ebp - 0xd0], 1
jmp 0x629c09
add dword [ebp - 0xc0], 1
add dword [ebp - 0xc8], 0x10
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jge 0x629c4a
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x629c4a
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 8]
jne 0x629c4a
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jne 0x629c4a
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
cmp edx, dword [ecx]
je 0x629bf4
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov eax, edx
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd0]
mov ecx, eax
mov eax, ebx
call fcn.00403760
mov eax, dword [ebp - 0xd0]
lea edx, [eax - 1]
mov eax, edx
shl eax, 2
add dword [ebp - 0xd8], eax
add dword [ebp - 0xc0], 1
add dword [ebp - 0xd8], 4
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jle 0x629b50
jmp 0x629ec7
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xe4], eax
add dword [ebp - 0xc8], 0x10
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0xc], 0xff
jb 0x629eaa
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x50], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 4]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4e], ax
mov ebx, dword [ecx + 0xc]
mov edx, ebx
shr edx, 1
mov eax, dword [ecx + 8]
lea eax, [edx + eax]
mov edx, 0
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x629d8f
mov byte [ebp - 0xf0], 0xff
jmp 0x629d98
mov al, byte [ecx + 0xc]
mov byte [ebp - 0xf0], al
movzx eax, byte [ebp - 0xf0]
mov edx, eax
shl edx, 8
lea eax, [edx + eax]
mov word [ebp - 0x4a], ax
mov dword [ebp - 0xd0], 1
jmp 0x629dcd
add dword [ebp - 0xc0], 1
add dword [ebp - 0xc8], 0x10
add dword [ebp - 0xd0], 1
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jge 0x629e0e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x629e0e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 8]
jne 0x629e0e
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 4]
cmp eax, dword [ecx + 4]
jne 0x629e0e
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
cmp edx, dword [ecx]
je 0x629db8
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x779370]
and eax, 0xff
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x779370]
and eax, 0xff
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov eax, edx
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd0]
mov ecx, eax
mov eax, ebx
call fcn.00403760
mov eax, dword [ebp - 0xd0]
lea edx, [eax - 1]
mov eax, edx
shl eax, 2
add dword [ebp - 0xd8], eax
add dword [ebp - 0xc0], 1
add dword [ebp - 0xd8], 4
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x28]
jle 0x629d10
mov eax, dword [ebp - 0xec]
cmp eax, dword [ebp - 0xd4]
jg 0x628634
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov esi, eax
mov dword [ebp - 0xf8], 0
cmp esi, dword [ebp - 0xf8]
jl 0x629f54
sub dword [ebp - 0xf8], 1
lea esi, [esi]
add dword [ebp - 0xf8], 1
mov edx, dword [ebp - 8]
imul eax, dword [ebp - 0xf8], 0x14
mov eax, dword [edx + eax]
call fcn.0040fea0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0xf8], 0x30
mov eax, dword [edx + eax]
mov edx, dword [ebp - 8]
imul ecx, dword [ebp - 0xf8], 0x14
lea edx, [edx + ecx + 0x10]
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 8]
imul ecx, dword [ebp - 0xf8], 0x30
mov ecx, dword [ebx + ecx]
mov ecx, dword [ecx]
call dword [ecx + 0x78]
cmp esi, dword [ebp - 0xf8]
jg 0x629f00
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebp - 0xfc]
mov edx, dword [edx]
call dword [edx + 0x12c]
call fcn.0040e3b0
lea eax, [ebp - 0x8c]
mov edx, 0x74d4b8
call fcn.0040cfb0
mov edx, 0x74d4ec
lea eax, [ebp - 8]
call fcn.0040ef60
mov edx, 0x74d50c
lea eax, [ebp - 0xc]
call fcn.0040ef60
mov edx, 0x74d544
lea eax, [ebp - 0x48]
call fcn.0040ef60
pop eax
test eax, eax
je 0x629fae
call fcn.0040e4e0
pop edi
pop esi
pop ebx
leave
ret