Function at 0x42e220
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xcc]
neg esi
push edi
jns 0x42e255
mov ecx, 0x167
mov eax, 0x6c16c16d
sub ecx, esi
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 8
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*8]
lea esi, [esi + eax*8]
cmp esi, 0x168
jl 0x42e27e
mov eax, 0x6c16c16d
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 8
mov ecx, eax
neg ecx
shl ecx, 2
sub ecx, eax
lea ecx, [ecx + ecx*8]
lea esi, [esi + ecx*8]
push esi
call fcn.0042e190
fstp dword [esp + 0x14]
push esi
call fcn.0042e100
fstp dword [esp + 0x30]
fld dword [esp + 0x18]
fmul dword [0x45336c]
add esp, 8
call fcn.00446944
fld dword [esp + 0x28]
fmul dword [0x45336c]
mov ebx, eax
mov dword [esp + 0x50], ebx
call fcn.00446944
mov edi, dword [esp + 0xc4]
mov ebp, eax
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
mov edx, dword [edi]
mov dword [esp + 0x1c], ebp
sub edx, eax
mov eax, dword [edi + 4]
mov dword [esp + 0x2c], edx
sub eax, esi
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
fst dword [esp + 0x4c]
fmul dword [esp + 0x28]
fild dword [esp + 0x2c]
fst dword [esp + 0x90]
fmul dword [esp + 0x10]
fstp dword [esp + 0x44]
fild dword [esp + 0xc8]
fstp dword [esp + 0x34]
fld st(0)
fsub dword [esp + 0x44]
fadd dword [esp + 0x34]
call fcn.00446944
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xcc]
sub ecx, edx
mov esi, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], esi
fild dword [esp + 0x2c]
mov dword [esp + 0x7c], esi
fst dword [esp + 0x54]
fmul dword [esp + 0x10]
fstp dword [esp + 0x38]
fsub dword [esp + 0x38]
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, si
jle 0x42e362
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42e366
mov dword [esp + 0x7c], eax
mov edx, dword [edi + 8]
mov edi, dword [esp + 0xc8]
sub edx, edi
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fld st(0)
fmul dword [esp + 0x28]
fld st(0)
fsub dword [esp + 0x44]
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, si
jle 0x42e39c
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42e3a7
cmp ax, word [esp + 0x7c]
jge 0x42e3a7
mov dword [esp + 0x7c], eax
fsub dword [esp + 0x38]
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, si
jle 0x42e3c1
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42e3cc
cmp ax, word [esp + 0x7c]
jge 0x42e3cc
mov dword [esp + 0x7c], eax
fld dword [esp + 0x90]
fmul dword [esp + 0x28]
fstp dword [esp + 0x44]
fld dword [esp + 0x4c]
fmul dword [esp + 0x10]
fild dword [esp + 0xcc]
fstp dword [esp + 0x34]
fld st(0)
fadd dword [esp + 0x44]
fadd dword [esp + 0x34]
call fcn.00446944
fld dword [esp + 0x54]
fmul dword [esp + 0x28]
mov edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
fst dword [esp + 0x38]
fadd st(1)
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, di
fstp st(0)
jle 0x42e42b
mov dword [esp + 0x14], eax
jmp 0x42e431
mov edi, eax
mov dword [esp + 0x18], edi
fmul dword [esp + 0x10]
fld st(0)
fadd dword [esp + 0x44]
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, word [esp + 0x14]
jle 0x42e451
mov dword [esp + 0x14], eax
jmp 0x42e45c
cmp ax, di
jge 0x42e45c
mov edi, eax
mov dword [esp + 0x18], edi
fadd dword [esp + 0x38]
fadd dword [esp + 0x34]
call fcn.00446944
cmp ax, word [esp + 0x14]
jle 0x42e476
mov dword [esp + 0x14], eax
jmp 0x42e481
cmp ax, di
jge 0x42e481
mov edi, eax
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0xb8]
movsx ecx, dx
add ecx, eax
sub esi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xb4]
sub edx, edi
movsx eax, di
add eax, dword [esp + 0xbc]
mov edi, dword [esi + 0x24]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x88], edx
cmp eax, edi
mov dword [esp + 0xa4], eax
jge 0x4306ea
mov edi, dword [esi + 0x1c]
movsx edx, dx
add edx, eax
cmp edx, edi
mov dword [esp + 0x2c], edx
jl 0x4306ea
cmp ecx, dword [esi + 0x20]
jge 0x4306ea
movsx edx, word [esp + 0x44]
mov edi, dword [esi + 0x18]
add edx, ecx
cmp edx, edi
mov dword [esp + 0x38], edx
jl 0x4306ea
mov edx, dword [esi + 0x24]
mov edi, dword [esp + 0x2c]
cmp edi, edx
jle 0x42e52e
mov edi, dword [esp + 0x88]
sub dx, ax
sub edx, edi
mov edi, dword [esp + 0x14]
add edi, edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x14], edi
mov dword [esp + 0xac], edx
jmp 0x42e535
mov dword [esp + 0xac], edi
mov edx, dword [esi + 0x1c]
cmp eax, edx
jge 0x42e553
mov di, dx
mov dword [esp + 0xa4], edx
sub di, ax
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x38]
cmp edx, eax
jle 0x42e57d
mov edi, dword [esp + 0x44]
mov dx, ax
sub dx, cx
mov dword [esp + 0xa8], eax
sub edx, edi
mov edi, dword [esp + 0x3c]
add edi, edx
mov dword [esp + 0x3c], edi
jmp 0x42e584
mov dword [esp + 0xa8], edx
mov eax, dword [esi + 0x18]
cmp ecx, eax
jge 0x42e5a2
mov dx, ax
mov dword [esp + 0xa0], eax
sub dx, cx
mov ecx, dword [esp + 0x7c]
add ecx, edx
mov dword [esp + 0x7c], ecx
mov eax, dword [0x45a610]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
push 4
mov eax, dword [eax + 0xed4]
mov dword [edi], ecx
mov edx, dword [0x45a610]
push edi
shr eax, 3
mov dword [esp + 0x34], eax
call dword [edx + 0xd8c]
lea eax, [esp + 0xa0]
push 4
mov dword [esi], eax
mov ecx, dword [0x45a610]
push esi
call dword [ecx + 0xd8c]
mov eax, dword [esi]
test eax, eax
je 0x4306cd
mov ecx, dword [edi]
test ecx, ecx
mov dword [esp + 0x98], ecx
je 0x4306cd
mov edx, dword [0x45a610]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x28]
add edx, 0xec8
push 0
push edx
push eax
call fcn.0043a9f0
mov ecx, dword [esi + 0x14]
mov edx, dword [edi + 0x14]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xd4]
mov dword [esp + 0x90], ecx
mov dword [esp + 0xa0], edx
movsx edx, word [esp + 0x88]
movsx ecx, word [esp + 0x24]
mov dword [esp + 0x68], eax
mov eax, edx
mov dword [esp + 0x34], ecx
sub ecx, esi
sub eax, edi
add esp, 0xc
dec eax
lea esi, [ecx - 1]
mov edi, esi
mov ecx, eax
imul esi, ebp
imul eax, ebx
imul edi, ebx
imul ecx, ebp
add esi, eax
mov eax, dword [esp + 0xcc]
shl eax, 0x10
add esi, eax
sub ecx, edi
movsx eax, word [esp + 0x3c]
mov edi, dword [esp + 0xc8]
sub eax, edx
shl edi, 0x10
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xd4]
add ecx, edi
cmp eax, 1
mov eax, dword [0x45a610]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], esi
jne 0x42f9f5
mov ecx, dword [eax + 0xed8]
mov esi, dword [eax + 0xedc]
mov edi, dword [eax + 0xee0]
mov eax, dword [esp + 0x2c]
sub eax, 2
mov dword [esp + 0x90], edi
je 0x42f312
dec eax
je 0x42ecce
dec eax
jne 0x430691
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x430691
mov edx, dword [esp + 0x24]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], edx
sub eax, ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
add eax, ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x7c]
test eax, eax
mov dword [esp + 0x4c], eax
jle 0x42ea39
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
add edx, ebx
add eax, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], eax
sar edx, 0x10
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xc4]
sar eax, 0x10
cmp eax, dword [edx]
mov dword [esp + 0x10], eax
jge 0x42e771
test ebp, ebp
jle 0x42ea35
jmp 0x42ea19
mov eax, dword [esp + 0x48]
cmp eax, dword [edx + 4]
jge 0x42e787
test ebx, ebx
jle 0x42ea35
jmp 0x42ea19
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [edx + 8]
jl 0x42e79e
test ebp, ebp
jge 0x42ea35
jmp 0x42ea19
mov eax, dword [esp + 0x48]
inc eax
cmp eax, dword [edx + 0xc]
jl 0x42e7b5
test ebx, ebx
jge 0x42ea35
jmp 0x42ea19
mov ebx, dword [esp + 0xd8]
test ebx, ebx
je 0x42eafc
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
movsx ebx, word [ebx]
and eax, 0xffff
and edx, 0xffff
mov ebp, eax
mov dword [esp + 0x2c], edx
shr ebp, 0xf
and ebp, 1
add ebp, dword [esp + 0x48]
shr edx, 0xf
imul ebp, ebx
mov ebx, dword [esp + 0x10]
and edx, 1
add ebx, ebp
mov ebp, dword [esp + 0xd8]
add edx, ebx
xor ebx, ebx
mov bl, byte [edx + ebp + 0x10]
mov edx, ebx
test edx, edx
mov dword [esp + 0x58], edx
je 0x42ea11
mov edx, dword [esp + 0x2c]
mov ebx, eax
imul ebx, edx
shr ebx, 0x18
mov ebp, edx
mov dword [esp + 0x34], ebx
xor edx, 0xffff
mov ebx, eax
imul eax, edx
xor ebx, 0xffff
shr eax, 0x18
imul edx, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x94]
imul ebp, ebx
shr edx, 0x18
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x98]
add edx, eax
mov eax, dword [esp + 0x10]
shr ebp, 0x18
lea ebx, [edx + eax*4]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x48], 0
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x94]
add ebx, edx
mov edx, dword [ebx]
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x5c]
cmp eax, edx
jne 0x42e8a9
mov ebx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x30], edx
jne 0x42e8c9
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
add ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x64], edx
jne 0x42e8df
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x64], 0
add ebx, ebp
jmp 0x42e8e3
mov ebx, dword [esp + 0x48]
cmp dword [esp + 0x10], edx
jne 0x42e8f7
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 0
add ebx, edx
cmp ebx, 0x88
ja 0x42ea11
cmp dword [esp + 0x58], 0xff
jae 0x42ea5a
mov edx, dword [esp + 0x14]
mov ebp, eax
and ebp, esi
mov edx, dword [edx]
imul ebp, dword [esp + 0x3c]
mov ebx, edx
and ebx, ecx
mov dword [esp + 0x44], ebx
mov ebx, edx
and edx, esi
and ebx, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x30]
mov ebx, eax
and ebx, edi
and edx, edi
imul ebx, dword [esp + 0x3c]
imul edx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x64]
and edx, edi
and eax, ecx
imul edx, dword [esp + 0x28]
imul eax, dword [esp + 0x3c]
add ebx, edx
mov edx, dword [esp + 0x10]
and edx, edi
imul edx, dword [esp + 0x34]
add ebx, edx
mov edx, dword [esp + 0x2c]
shr ebx, 8
sub ebx, edx
imul ebx, dword [esp + 0x58]
shr ebx, 8
add ebx, edx
mov edx, dword [esp + 0x30]
and edx, esi
and ebx, edi
imul edx, dword [esp + 0x18]
add ebp, edx
mov edx, dword [esp + 0x64]
and edx, esi
mov edi, dword [esp + 0x34]
imul edx, dword [esp + 0x28]
add ebp, edx
mov edx, dword [esp + 0x10]
and edx, esi
imul edx, edi
add ebp, edx
mov edx, dword [esp + 0x88]
shr ebp, 8
sub ebp, edx
imul ebp, dword [esp + 0x58]
shr ebp, 8
add ebp, edx
mov edx, dword [esp + 0x30]
and edx, ecx
and ebp, esi
imul edx, dword [esp + 0x18]
add eax, edx
mov edx, dword [esp + 0x64]
and edx, ecx
or ebx, ebp
imul edx, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x10]
and edx, ecx
imul edx, edi
add eax, edx
mov edx, dword [esp + 0x44]
shr eax, 8
sub eax, edx
imul eax, dword [esp + 0x58]
shr eax, 8
add eax, edx
mov edi, dword [esp + 0x90]
and eax, ecx
or ebx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
dec eax
add edx, 4
test eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], edx
jg 0x42e737
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
add edx, eax
mov eax, dword [esp + 0x54]
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x54], eax
jne 0x42e707
jmp 0x430691
mov edx, dword [esp + 0x30]
mov ebx, eax
and edx, edi
and ebx, edi
imul ebx, dword [esp + 0x3c]
imul edx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x64]
and edx, edi
mov ebp, dword [esp + 0x10]
imul edx, dword [esp + 0x28]
add ebx, edx
mov edx, dword [esp + 0x10]
and edx, edi
and ebp, esi
imul edx, dword [esp + 0x34]
add ebx, edx
mov edx, eax
shr ebx, 8
and ebx, edi
mov edi, dword [esp + 0x30]
and edx, esi
and edi, esi
imul edx, dword [esp + 0x3c]
imul edi, dword [esp + 0x18]
add edx, edi
mov edi, dword [esp + 0x64]
and edi, esi
and eax, ecx
imul edi, dword [esp + 0x28]
imul eax, dword [esp + 0x3c]
add edx, edi
mov edi, dword [esp + 0x34]
imul ebp, edi
add edx, ebp
shr edx, 8
and edx, esi
or ebx, edx
mov edx, dword [esp + 0x30]
and edx, ecx
imul edx, dword [esp + 0x18]
add eax, edx
mov edx, dword [esp + 0x64]
and edx, ecx
imul edx, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x10]
and edx, ecx
imul edx, edi
add eax, edx
shr eax, 8
jmp 0x42ea00
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
and eax, 0xffff
and ebx, 0xffff
mov ebp, eax
mov edx, eax
xor ebp, 0xffff
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], ebp
imul edx, ebx
mov ebp, ebx
xor ebx, 0xffff
imul eax, ebx
imul ebx, dword [esp + 0x44]
shr eax, 0x18
imul ebp, dword [esp + 0x44]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x94]
shr ebx, 0x18
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x98]
add ebx, eax
mov eax, dword [esp + 0x10]
shr edx, 0x18
lea ebx, [ebx + eax*4]
mov dword [esp + 0x88], edx
shr ebp, 0x18
mov eax, dword [ebx]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x94]
add ebx, eax
mov dword [esp + 0x10], 0
mov eax, dword [ebx]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x48], ebx
jne 0x42ebb9
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x34], ebx
jne 0x42ebd9
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
add ebx, eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x28], ebx
jne 0x42ebf1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], 0
add eax, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x42ec09
mov ebx, dword [esp + 0x10]
xor eax, eax
add ebx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0x88
ja 0x42ecc1
mov ebp, dword [esp + 0x34]
and eax, edi
and ebp, edi
imul eax, edx
imul ebp, dword [esp + 0x58]
add ebp, eax
mov eax, dword [esp + 0x48]
and eax, edi
mov ebx, dword [esp + 0x18]
imul eax, dword [esp + 0x3c]
add ebp, eax
mov eax, dword [esp + 0x28]
and eax, edi
and ebx, esi
imul eax, dword [esp + 0x38]
imul ebx, edx
mov edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x34]
and edx, esi
imul edx, dword [esp + 0x3c]
and eax, esi
imul eax, dword [esp + 0x58]
add eax, ebx
mov ebx, dword [esp + 0x38]
add eax, edx
mov edx, dword [esp + 0x28]
and edx, esi
imul edx, ebx
add eax, edx
mov edx, dword [esp + 0x18]
shr ebp, 8
shr eax, 8
and ebp, edi
and eax, esi
or ebp, eax
mov eax, dword [esp + 0x34]
and eax, ecx
and edx, ecx
imul eax, dword [esp + 0x58]
imul edx, dword [esp + 0x88]
add eax, edx
mov edx, dword [esp + 0x48]
and edx, ecx
imul edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x28]
and edx, ecx
imul edx, ebx
add eax, edx
shr eax, 8
and eax, ecx
or ebp, eax
mov eax, dword [esp + 0x14]
mov dword [eax], ebp
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x1c]
jmp 0x42ea19
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x430691
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
sub eax, ebx
mov dword [esp + 0x68], eax
mov ecx, eax
mov eax, dword [esp + 0x60]
add eax, ebp
mov dword [esp + 0x60], eax
mov edx, eax
mov eax, dword [esp + 0x7c]
test eax, eax
mov dword [esp + 0x90], eax
jle 0x42f2ed
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x64], eax
jmp 0x42ed21
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0xc4]
add ecx, ebp
add edx, ebx
mov dword [esp + 0x48], ecx
mov edi, dword [esi]
mov dword [esp + 0x54], edx
sar ecx, 0x10
sar edx, 0x10
cmp ecx, edi
jge 0x42ed4d
test ebp, ebp
jle 0x42f2ed
jmp 0x42f2cf
cmp edx, dword [esi + 4]
jge 0x42ed5f
test ebx, ebx
jle 0x42f2ed
jmp 0x42f2cf
lea edi, [ecx + 1]
cmp edi, dword [esi + 8]
jl 0x42ed74
test ebp, ebp
jge 0x42f2ed
jmp 0x42f2cf
lea edi, [edx + 1]
cmp edi, dword [esi + 0xc]
jl 0x42ed89
test ebx, ebx
jge 0x42f2ed
jmp 0x42f2cf
mov esi, dword [esp + 0xd8]
test esi, esi
je 0x42f0e1
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
movsx esi, word [esi]
and eax, 0xffff
and ebp, 0xffff
mov edi, eax
mov ebx, ecx
shr edi, 0xf
and edi, 1
add edi, edx
imul edi, esi
mov esi, ebp
add ebx, edi
mov edi, dword [esp + 0xd8]
shr esi, 0xf
and esi, 1
add esi, ebx
xor ebx, ebx
mov bl, byte [esi + edi + 0x10]
mov esi, ebx
test esi, esi
mov dword [esp + 0x58], esi
je 0x42f2c3
mov esi, eax
mov edi, ebp
imul esi, ebp
xor ebp, 0xffff
mov ebx, eax
imul eax, ebp
xor ebx, 0xffff
imul edi, ebx
imul ebp, ebx
mov ebx, dword [esp + 0x94]
imul edx, ebx
shr eax, 0x18
mov dword [esp + 0x28], eax
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x98]
add ecx, edx
shr ebp, 0x18
add eax, ecx
mov dword [esp + 0x18], ebp
mov ecx, eax
lea ebp, [eax + 3]
add eax, ebx
shr esi, 0x18
lea edx, [eax + 3]
xor ebx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x5c]
shr edi, 0x18
cmp byte [ecx], dl
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x20], ebx
jne 0x42ee76
cmp byte [ecx + 1], dh
jne 0x42ee76
mov bl, byte [esp + 0x5e]
cmp byte [ecx + 2], bl
jne 0x42ee72
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], ebx
jmp 0x42ee76
mov ebx, dword [esp + 0x20]
cmp byte [eax], dl
jne 0x42eea0
cmp byte [eax + 1], dh
jne 0x42eea0
mov bl, byte [esp + 0x5e]
cmp byte [eax + 2], bl
jne 0x42ee9c
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
add ebx, eax
jmp 0x42eea0
mov ebx, dword [esp + 0x20]
cmp byte [ebp], dl
jne 0x42eebd
cmp byte [ebp + 1], dh
jne 0x42eebd
mov al, byte [esp + 0x5e]
cmp byte [ebp + 2], al
jne 0x42eebd
lea ebp, [esp + 0x40]
add ebx, edi
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x14]
cmp byte [eax], dl
jne 0x42eedd
cmp byte [eax + 1], dh
jne 0x42eedd
mov dl, byte [esp + 0x5e]
cmp byte [eax + 2], dl
jne 0x42eedd
lea eax, [esp + 0x40]
add ebx, esi
mov dword [esp + 0x14], eax
cmp ebx, 0x88
ja 0x42f2c3
cmp dword [esp + 0x58], 0xff
jae 0x42f01b
mov eax, dword [esp + 0x64]
xor ebx, ebx
mov bl, byte [ecx]
mov dl, byte [eax - 1]
imul ebx, dword [esp + 0x18]
mov byte [esp + 0x44], dl
xor edx, edx
mov dl, byte [ebp]
mov ebp, dword [esp + 0x14]
imul edx, edi
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
mov ebp, dword [esp + 0x30]
imul ebx, esi
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
imul ebx, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x44]
shr edx, 8
and ebx, 0xff
sub edx, ebx
mov bl, byte [esp + 0x44]
imul edx, dword [esp + 0x58]
shr edx, 8
add dl, bl
inc ecx
inc ebp
mov byte [eax - 1], dl
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x3c]
xor ebx, ebx
inc ebp
inc edx
mov bl, byte [ecx]
mov dword [esp + 0x14], edx
mov dl, byte [eax]
imul ebx, dword [esp + 0x18]
mov byte [esp + 0x38], dl
xor edx, edx
mov dl, byte [ebp]
mov dword [esp + 0x3c], ebp
imul edx, edi
mov ebp, dword [esp + 0x14]
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
mov ebp, dword [esp + 0x30]
imul ebx, esi
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
imul ebx, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x38]
shr edx, 8
and ebx, 0xff
sub edx, ebx
mov bl, byte [esp + 0x38]
imul edx, dword [esp + 0x58]
shr edx, 8
add dl, bl
xor ebx, ebx
mov byte [eax], dl
mov bl, byte [ecx + 1]
imul ebx, dword [esp + 0x18]
xor ecx, ecx
mov dl, byte [eax + 1]
mov cl, byte [ebp + 1]
mov ebp, dword [esp + 0x3c]
imul ecx, dword [esp + 0x28]
add ebx, ecx
xor ecx, ecx
mov cl, byte [ebp + 1]
mov byte [esp + 0x2c], dl
imul ecx, edi
add ebx, ecx
xor ecx, ecx
mov edi, dword [esp + 0x14]
mov cl, byte [edi + 1]
imul ecx, esi
add ebx, ecx
mov ecx, dword [esp + 0x2c]
shr ebx, 8
and ecx, 0xff
sub ebx, ecx
imul ebx, dword [esp + 0x58]
shr ebx, 8
add bl, dl
mov byte [eax + 1], bl
jmp 0x42f2c7
xor edx, edx
xor eax, eax
mov dl, byte [ebp]
mov al, byte [ecx]
imul eax, dword [esp + 0x18]
imul edx, edi
mov ebx, dword [esp + 0x14]
add edx, eax
xor eax, eax
mov al, byte [ebx]
mov ebx, dword [esp + 0x30]
imul eax, esi
add edx, eax
xor eax, eax
mov al, byte [ebx]
imul eax, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x64]
shr edx, 8
mov byte [eax - 1], dl
mov edx, ebx
inc ecx
inc edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
inc ebp
inc edx
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, byte [ebp]
xor ebx, ebx
mov bl, byte [ecx]
imul edx, edi
imul ebx, dword [esp + 0x18]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x14]
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
mov ebp, dword [esp + 0x30]
imul ebx, esi
add edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
mov ebp, dword [esp + 0x28]
imul ebx, ebp
add edx, ebx
mov ebx, dword [esp + 0x30]
shr edx, 8
mov byte [eax], dl
xor edx, edx
mov dl, byte [ecx + 1]
xor ecx, ecx
mov cl, byte [ebx + 1]
imul edx, dword [esp + 0x18]
imul ecx, ebp
mov ebx, dword [esp + 0x3c]
add edx, ecx
xor ecx, ecx
mov cl, byte [ebx + 1]
imul ecx, edi
mov edi, dword [esp + 0x14]
add edx, ecx
xor ecx, ecx
mov cl, byte [edi + 1]
imul ecx, esi
add edx, ecx
shr edx, 8
mov byte [eax + 1], dl
jmp 0x42f2c7
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
and eax, 0xffff
and esi, 0xffff
mov edi, eax
mov ebp, esi
imul edi, esi
mov ebx, eax
xor esi, 0xffff
xor ebx, 0xffff
imul eax, esi
imul ebp, ebx
imul esi, ebx
mov ebx, dword [esp + 0x94]
lea ecx, [ecx + ecx*2]
imul edx, ebx
shr eax, 0x18
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
add eax, edx
shr esi, 0x18
add ecx, eax
mov dword [esp + 0x58], esi
mov esi, ecx
xor eax, eax
lea edx, [ecx + 3]
add ecx, ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov al, byte [esi]
shr edi, 0x18
shr ebp, 0x18
mov dword [esp + 0x18], edx
cmp al, bl
mov dword [esp + 0x34], ecx
lea edx, [ecx + 3]
jne 0x42f17e
cmp byte [esi + 1], bh
jne 0x42f17e
mov al, byte [esi + 2]
cmp al, byte [esp + 0x5e]
jne 0x42f17e
mov eax, dword [esp + 0x58]
lea esi, [esp + 0x20]
mov dword [esp + 0x10], eax
cmp byte [ecx], bl
jne 0x42f1a6
cmp byte [ecx + 1], bh
jne 0x42f1a6
mov al, byte [esp + 0x5e]
cmp byte [ecx + 2], al
jne 0x42f1a6
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
cmp byte [eax], bl
jne 0x42f1d0
cmp byte [eax + 1], bh
jne 0x42f1d0
mov cl, byte [eax + 2]
mov al, byte [esp + 0x5e]
cmp cl, al
jne 0x42f1d0
lea eax, [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, ebp
mov dword [esp + 0x10], eax
cmp byte [edx], bl
jne 0x42f1f2
cmp byte [edx + 1], bh
jne 0x42f1f2
mov cl, byte [esp + 0x5e]
mov al, byte [edx + 2]
cmp al, cl
jne 0x42f1f2
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x20]
add eax, edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x88
ja 0x42f2c3
mov ebx, dword [esp + 0x34]
xor eax, eax
mov al, byte [edx]
mov ecx, eax
xor eax, eax
mov al, byte [ebx]
imul ecx, edi
imul eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x18]
add ecx, eax
xor eax, eax
mov al, byte [ebx]
imul eax, ebp
add ecx, eax
xor eax, eax
mov al, byte [esi]
imul eax, dword [esp + 0x58]
add ecx, eax
mov eax, dword [esp + 0x64]
shr ecx, 8
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x34]
inc esi
inc ecx
inc ebx
inc edx
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov bl, byte [edx]
mov dword [esp + 0x88], edx
xor edx, edx
imul ebx, edi
mov dl, byte [ecx]
mov dword [esp + 0x34], ecx
imul edx, dword [esp + 0x40]
add ebx, edx
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [edx]
imul ecx, ebp
add ebx, ecx
xor ecx, ecx
mov cl, byte [esi]
mov edx, ecx
mov ecx, dword [esp + 0x58]
imul edx, ecx
add ebx, edx
xor edx, edx
shr ebx, 8
mov byte [eax], bl
mov ebx, dword [esp + 0x34]
mov dl, byte [ebx + 1]
xor ebx, ebx
mov bl, byte [esi + 1]
mov esi, dword [esp + 0x88]
imul edx, dword [esp + 0x40]
imul ebx, ecx
xor ecx, ecx
add edx, ebx
mov cl, byte [esi + 1]
mov esi, dword [esp + 0x18]
imul ecx, edi
add edx, ecx
xor ecx, ecx
mov cl, byte [esi + 1]
imul ecx, ebp
add edx, ecx
shr edx, 8
mov byte [eax + 1], dl
jmp 0x42f2c7
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
add eax, 3
dec ecx
mov dword [esp + 0x64], eax
test ecx, ecx
mov dword [esp + 0x90], ecx
jg 0x42ed19
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
add ecx, edx
dec eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], eax
jne 0x42ece3
jmp 0x430691
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x430691
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
add eax, ebp
sub edx, ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x68], edx
test eax, eax
mov dword [esp + 0x88], eax
jle 0x42f9d0
jmp 0x42f360
mov edx, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x44], edx
mov eax, edx
mov edx, dword [esp + 0x30]
add edx, ebx
mov dword [esp + 0x30], edx
sar edx, 0x10
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xc4]
sar eax, 0x10
cmp eax, dword [edx]
mov dword [esp + 0x20], eax
jge 0x42f398
test ebp, ebp
jle 0x42f9d0
jmp 0x42f9ae
mov eax, dword [esp + 0x34]
cmp eax, dword [edx + 4]
jge 0x42f3ae
test ebx, ebx
jle 0x42f9d0
jmp 0x42f9ae
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [edx + 8]
jl 0x42f3c5
test ebp, ebp
jge 0x42f9d0
jmp 0x42f9ae
mov eax, dword [esp + 0x34]
inc eax
cmp eax, dword [edx + 0xc]
jl 0x42f3dc
test ebx, ebx
jge 0x42f9d0
jmp 0x42f9ae
mov ebp, dword [esp + 0xd8]
test ebp, ebp
je 0x42f79b
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
movsx ebp, word [ebp]
and edx, 0xffff
and eax, 0xffff
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], eax
shr edx, 0xf
and edx, 1
add edx, dword [esp + 0x34]
shr eax, 0xf
imul edx, ebp
mov ebp, dword [esp + 0x20]
and eax, 1
add ebp, edx
xor edx, edx
add eax, ebp
mov ebp, dword [esp + 0xd8]
mov dl, byte [eax + ebp + 0x10]
mov eax, edx
test eax, eax
mov dword [esp + 0x4c], eax
je 0x42f9aa
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
mov ebp, ebx
mov edx, ebx
xor ebp, 0xffff
imul edx, eax
mov dword [esp + 0x40], ebp
imul ebp, eax
xor eax, 0xffff
mov dword [esp + 0x10], 0
mov dword [esp + 0x54], eax
imul eax, ebx
shr eax, 0x18
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
imul eax, dword [esp + 0x40]
shr eax, 0x18
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
add ebx, eax
mov eax, dword [esp + 0x20]
shr edx, 0x18
lea eax, [ebx + eax*2]
mov dword [esp + 0x38], edx
shr ebp, 0x18
mov bx, word [eax]
mov dword [esp + 0x48], ebp
mov word [esp + 0x20], bx
mov bx, word [eax + 2]
mov word [esp + 0x58], bx
mov ebx, dword [esp + 0x94]
add eax, ebx
mov bx, word [eax]
mov ax, word [eax + 2]
mov word [esp + 0x54], ax
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x20], ax
mov word [esp + 0x40], bx
jne 0x42f4f7
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x40], ax
jne 0x42f518
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x10]
add ebx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x58], ax
jne 0x42f531
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x58], 0
add ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x54]
cmp bx, ax
jne 0x42f54a
mov eax, dword [esp + 0x10]
xor ebx, ebx
add eax, edx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x88
ja 0x42f6b4
cmp dword [esp + 0x4c], 0xff
jae 0x42f6c1
mov eax, dword [esp + 0x14]
mov bx, word [eax]
mov eax, ecx
and eax, ebx
mov dword [esp + 0x8c], eax
mov eax, edi
and eax, ebx
mov dword [esp + 0x34], eax
mov eax, esi
and eax, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x20]
and eax, 0xffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
and eax, 0xffff
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
and eax, 0xffff
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
and eax, 0xffff
mov ebx, eax
and ebx, edi
imul ebx, edx
mov edx, dword [esp + 0x64]
and edx, edi
imul edx, ebp
add ebx, edx
mov edx, dword [esp + 0x18]
and edx, edi
imul edx, dword [esp + 0x3c]
add ebx, edx
mov edx, dword [esp + 0x10]
and edx, edi
imul edx, dword [esp + 0x28]
add ebx, edx
mov edx, dword [esp + 0x34]
mov ebp, edx
shr ebx, 8
and ebp, 0xffff
sub ebx, ebp
mov ebp, eax
imul ebx, dword [esp + 0x4c]
shr ebx, 8
add ebx, edx
mov edx, dword [esp + 0x64]
and ebp, esi
and edx, esi
imul ebp, dword [esp + 0x38]
imul edx, dword [esp + 0x48]
add ebp, edx
mov edx, dword [esp + 0x18]
and edx, esi
and ebx, edi
imul edx, dword [esp + 0x3c]
add ebp, edx
mov edx, dword [esp + 0x10]
and edx, esi
and eax, ecx
imul edx, dword [esp + 0x28]
imul eax, dword [esp + 0x38]
add ebp, edx
mov edx, dword [esp + 0x9c]
mov edi, edx
shr ebp, 8
and edi, 0xffff
sub ebp, edi
mov edi, dword [esp + 0x4c]
imul ebp, edi
shr ebp, 8
add ebp, edx
mov edx, dword [esp + 0x64]
and edx, ecx
and ebp, esi
imul edx, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x18]
and edx, ecx
or ebx, ebp
imul edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x10]
and edx, ecx
imul edx, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x8c]
mov ebp, edx
shr eax, 8
and ebp, 0xffff
sub eax, ebp
imul eax, edi
shr eax, 8
add eax, edx
mov edi, dword [esp + 0x90]
and eax, ecx
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [eax], bx
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
jmp 0x42f9ae
mov eax, dword [esp + 0x20]
and ebx, 0xffff
and eax, 0xffff
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
and eax, 0xffff
and ebx, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
and eax, 0xffff
imul ebx, edx
mov dword [esp + 0x64], eax
and eax, edi
imul eax, ebp
add ebx, eax
mov eax, dword [esp + 0x18]
and eax, edi
imul eax, dword [esp + 0x3c]
add ebx, eax
mov eax, dword [esp + 0x10]
and eax, edi
imul eax, dword [esp + 0x28]
add ebx, eax
mov eax, dword [esp + 0x4c]
and eax, esi
imul eax, edx
mov edx, dword [esp + 0x64]
and edx, esi
imul edx, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x18]
and edx, esi
imul edx, dword [esp + 0x3c]
shr ebx, 8
and ebx, edi
add eax, edx
mov edx, dword [esp + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0x28]
and edx, esi
imul edx, ebx
add eax, edx
mov edx, dword [esp + 0x64]
shr eax, 8
and eax, esi
and edx, ecx
imul edx, dword [esp + 0x48]
or ebp, eax
mov eax, dword [esp + 0x4c]
and eax, ecx
imul eax, dword [esp + 0x38]
add eax, edx
mov edx, dword [esp + 0x18]
and edx, ecx
imul edx, dword [esp + 0x3c]
add eax, edx
mov edx, dword [esp + 0x10]
and edx, ecx
imul edx, ebx
add eax, edx
shr eax, 8
and eax, ecx
or ebp, eax
mov eax, dword [esp + 0x14]
mov word [eax], bp
jmp 0x42f9a6
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x8c], ebx
mov eax, ebx
xor ebx, 0xffff
imul eax, edx
mov ebp, ebx
mov dword [esp + 0x9c], ebx
imul ebp, edx
xor edx, 0xffff
mov dword [esp + 0x10], 0
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x8c]
shr edx, 0x18
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x34]
imul edx, dword [esp + 0x94]
shr ebx, 0x18
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x98]
add ebx, edx
mov edx, dword [esp + 0x20]
shr eax, 0x18
lea edx, [ebx + edx*2]
mov dword [esp + 0x28], eax
shr ebp, 0x18
mov bx, word [edx]
mov dword [esp + 0x48], ebp
mov word [esp + 0x38], bx
mov bx, word [edx + 2]
mov word [esp + 0x54], bx
mov ebx, dword [esp + 0x94]
add edx, ebx
mov bx, word [edx]
mov dx, word [edx + 2]
mov word [esp + 0x8c], dx
mov edx, dword [esp + 0x5c]
cmp word [esp + 0x38], dx
mov word [esp + 0x4c], bx
jne 0x42f86e
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x4c], dx
jne 0x42f88f
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
add ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x54], dx
jne 0x42f8a8
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x54], 0
add ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x8c]
cmp bx, dx
jne 0x42f8c0
mov edx, dword [esp + 0x10]
xor ebx, ebx
add edx, eax
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x88
ja 0x42f9a6
mov edx, dword [esp + 0x38]
and ebx, 0xffff
and edx, 0xffff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x4c]
and edx, 0xffff
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x54]
and edx, 0xffff
and ebx, edi
mov dword [esp + 0x54], edx
and edx, edi
imul ebx, eax
imul edx, ebp
add ebx, edx
mov edx, dword [esp + 0x38]
and edx, edi
imul edx, dword [esp + 0x40]
add ebx, edx
mov edx, dword [esp + 0x20]
and edx, edi
imul edx, dword [esp + 0x58]
add ebx, edx
mov edx, dword [esp + 0x4c]
and edx, esi
imul edx, eax
mov eax, dword [esp + 0x54]
and eax, esi
imul eax, dword [esp + 0x48]
add edx, eax
mov eax, dword [esp + 0x38]
and eax, esi
imul eax, dword [esp + 0x40]
shr ebx, 8
and ebx, edi
add edx, eax
mov eax, dword [esp + 0x20]
mov ebp, ebx
mov ebx, dword [esp + 0x58]
and eax, esi
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x4c]
shr edx, 8
and edx, esi
and eax, ecx
imul eax, dword [esp + 0x28]
or ebp, edx
mov edx, dword [esp + 0x54]
and edx, ecx
imul edx, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x38]
and edx, ecx
imul edx, dword [esp + 0x40]
add eax, edx
mov edx, dword [esp + 0x20]
and edx, ecx
imul edx, ebx
add eax, edx
mov edx, dword [esp + 0x14]
shr eax, 8
and eax, ecx
or ebp, eax
mov word [edx], bp
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x14]
dec eax
add edx, 2
test eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x14], edx
jg 0x42f35c
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x24]
add edx, eax
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
jne 0x42f327
jmp 0x430691
mov edx, dword [eax + 0xed8]
mov edi, dword [eax + 0xedc]
mov eax, dword [eax + 0xee0]
mov dword [esp + 0x38], edx
mov dword [esp + 0x90], eax
or eax, edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x18], edi
mov edx, dword [eax]
mov edi, dword [eax + 4]
shl edx, 0x10
mov dword [esp + 0x70], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x70]
shl edx, 0x10
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x7c]
shl eax, 0x10
mov dword [esp + 0x78], eax
mov eax, edx
imul eax, ebp
mov dword [esp + 0x50], eax
mov eax, edx
imul eax, ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
shl edi, 0x10
sub eax, 2
mov dword [esp + 0x74], edi
je 0x430277
dec eax
je 0x42fe59
dec eax
jne 0x430691
movsx eax, word [esp + 0x14]
mov edx, dword [esp + 0x28]
sub eax, edx
xor edx, edx
cmp eax, edx
mov dword [esp + 0x1c], eax
jle 0x430691
sub ecx, ebx
add esi, ebp
cmp ebp, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x10], edx
jle 0x42fb1d
mov eax, dword [esp + 0x6c]
lea edx, [ecx + ebp]
cmp edx, eax
jge 0x42fac0
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
add eax, ecx
cmp eax, edi
jl 0x42fada
mov eax, dword [esp + 0x50]
sub eax, edi
add eax, ecx
cdq
idiv ebp
inc eax
mov dword [esp + 0x10], eax
test ebx, ebx
jle 0x42fbbe
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x42fafe
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x60], eax
jg 0x42fafe
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x42fc0a
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x42fbf6
jge 0x42fb47
lea edx, [ecx + ebp]
cmp edx, edi
jl 0x42fb31
mov eax, edi
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
add eax, ecx
cmp eax, edx
jge 0x42fada
mov eax, dword [esp + 0x50]
sub eax, edx
jmp 0x42fad0
cmp ebx, edx
jle 0x42fb66
cmp ecx, dword [esp + 0x6c]
jl 0x430691
cmp ecx, edi
jl 0x42fada
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x42fc8d
jge 0x42fada
cmp ecx, edi
jge 0x430691
cmp ecx, dword [esp + 0x6c]
jge 0x42fada
mov edx, dword [esp + 0x6c]
mov eax, ecx
sub eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], eax
sub edx, eax
imul eax, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
add edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], edx
mov edx, eax
imul edx, ebx
imul eax, ebp
sub ecx, edx
add esi, eax
jmp 0x42fe41
jge 0x42fc56
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x42fbe0
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x60], eax
jg 0x42fbe0
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x42fc0a
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
sub eax, edi
add eax, esi
cdq
idiv ebx
mov edx, dword [esp + 0x10]
inc eax
cmp edx, eax
jg 0x42fc0a
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
lea eax, [eax + edx*4]
mov dword [esp + 0x14], eax
mov eax, edx
imul edx, ebx
imul eax, ebp
add edx, esi
add eax, ecx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xd8]
test edx, edx
mov edx, dword [esp + 0x7c]
je 0x42fdc6
sub edx, edi
mov edi, dword [esp + 0x60]
sub edx, edi
test edx, edx
jle 0x42fe2c
mov dword [esp + 0x4c], edx
jmp 0x42fcc4
test ebp, ebp
jle 0x42fc74
cmp esi, dword [esp + 0x78]
jge 0x430691
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x42fc0a
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x42fc8d
jge 0x42fc0a
cmp esi, dword [esp + 0x70]
jl 0x430691
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x42fc0a
sub eax, esi
cdq
idiv ebp
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
sub edx, eax
mov dword [esp + 0x1c], edx
mov edx, eax
imul edx, dword [esp + 0x84]
add edi, edx
mov edx, eax
imul edx, ebx
imul eax, ebp
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x74]
sub ecx, edx
add esi, eax
jmp 0x42fe41
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0xd8]
add edx, ebx
add eax, ebp
movsx edi, word [edi]
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], eax
sar edx, 0x10
imul edi, edx
sar eax, 0x10
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x9c], eax
add edi, eax
xor eax, eax
mov al, byte [edi + edx + 0x10]
test eax, eax
mov dword [esp + 0x88], eax
je 0x42fdaa
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x98]
imul edx, dword [esp + 0x94]
add edi, edx
mov edx, dword [esp + 0x9c]
mov edx, dword [edi + edx*4]
mov edi, dword [esp + 0x5c]
cmp edx, edi
mov dword [esp + 0x2c], edx
je 0x42fdaa
cmp eax, 0xff
mov eax, dword [esp + 0x14]
jae 0x42fda8
mov edi, dword [eax]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
and edx, edi
and eax, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x44]
and edx, edi
sub edx, eax
imul edx, dword [esp + 0x88]
shr edx, 8
add edx, eax
mov eax, dword [esp + 0x44]
and edx, eax
mov eax, dword [esp + 0x18]
and eax, edi
mov edi, dword [esp + 0x90]
sub eax, edi
imul eax, dword [esp + 0x88]
shr eax, 8
add eax, edi
mov edi, dword [esp + 0x18]
and eax, edi
or edx, eax
mov eax, dword [esp + 0x14]
mov dword [eax], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
add edx, 4
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], eax
jne 0x42fcc0
jmp 0x42fe2c
sub edx, edi
mov edi, dword [esp + 0x60]
sub edx, edi
test edx, edx
jle 0x42fe2c
mov dword [esp + 0x2c], edx
jmp 0x42fddc
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x98]
add edx, ebx
add eax, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], eax
sar edx, 0x10
imul edx, dword [esp + 0x94]
sar eax, 0xe
and al, 0xfc
add edi, edx
mov edx, dword [esp + 0x5c]
mov eax, dword [eax + edi]
cmp eax, edx
je 0x42fe16
mov edx, dword [esp + 0x14]
mov dword [edx], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add edx, 4
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], eax
jne 0x42fdd8
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x74]
add edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x1c]
xor edx, edx
dec eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jg 0x42fa9c
jmp 0x430691
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x430691
xor eax, eax
sub ecx, ebx
add esi, ebp
cmp ebp, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
jle 0x42fef9
mov eax, dword [esp + 0x6c]
lea edx, [ecx + ebp]
cmp edx, eax
jge 0x42fe9c
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
add eax, ecx
cmp eax, edi
jl 0x42feb6
mov eax, dword [esp + 0x50]
sub eax, edi
add eax, ecx
cdq
idiv ebp
inc eax
mov dword [esp + 0x10], eax
test ebx, ebx
jle 0x42ff6a
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x42feda
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x14], eax
jg 0x42feda
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x42ffb6
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x42ffa2
jge 0x42ff23
lea edx, [ecx + ebp]
cmp edx, edi
jl 0x42ff0d
mov eax, edi
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
add eax, ecx
cmp eax, edx
jge 0x42feb6
mov eax, dword [esp + 0x50]
sub eax, edx
jmp 0x42feac
cmp ebx, eax
jle 0x42ff42
cmp ecx, dword [esp + 0x6c]
jl 0x430691
cmp ecx, edi
jl 0x42feb6
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x430162
jge 0x42feb6
cmp ecx, edi
jge 0x430691
cmp ecx, dword [esp + 0x6c]
jge 0x42feb6
mov edi, dword [esp + 0x6c]
mov eax, ecx
sub eax, edi
cdq
idiv ebx
jmp 0x430162
jge 0x43011f
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x42ff8c
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x14], eax
jg 0x42ff8c
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x42ffb6
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
sub eax, edi
add eax, esi
cdq
idiv ebx
mov edx, dword [esp + 0x10]
inc eax
cmp edx, eax
jg 0x42ffb6
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov edi, edx
lea eax, [eax + edx*2]
add edi, eax
mov eax, edx
imul eax, ebp
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, edx
imul eax, ebx
mov edx, dword [esp + 0x10]
add eax, esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd8]
test eax, eax
mov eax, dword [esp + 0x7c]
je 0x4301c7
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, edx
test eax, eax
jle 0x43024c
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0xd8]
add edx, ebx
mov eax, dword [esp + 0x20]
movsx esi, word [esi]
mov dword [esp + 0x40], edx
add eax, ebp
sar edx, 0x10
imul esi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xd8]
sar eax, 0x10
mov dword [esp + 0x9c], eax
add esi, eax
xor eax, eax
mov al, byte [esi + edx + 0x10]
test eax, eax
mov dword [esp + 0x88], eax
je 0x4301ac
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x9c]
imul ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
lea eax, [eax + eax*2]
add ecx, eax
xor edx, edx
mov dword [esp + 0x44], ecx
mov al, byte [ecx + esi]
mov dl, byte [esi + ecx + 1]
mov byte [esp + 0x83], al
mov dh, al
xor eax, eax
mov al, byte [ecx + esi + 2]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x5c]
cmp edx, eax
je 0x4301a8
mov eax, dword [esp + 0x88]
cmp eax, 0xff
jae 0x430191
mov dl, byte [edi]
mov cl, byte [esp + 0x83]
sub cl, dl
movsx ecx, cl
imul ecx, eax
shr ecx, 8
add cl, dl
mov dl, byte [edi + 1]
mov byte [edi], cl
mov ecx, dword [esp + 0x44]
inc ecx
mov byte [esp + 0x83], dl
mov dword [esp + 0x44], ecx
mov dl, byte [ecx + esi]
mov cl, byte [esp + 0x83]
sub dl, cl
movsx edx, dl
imul edx, eax
shr edx, 8
add dl, cl
mov cl, byte [edi + 2]
mov byte [edi + 1], dl
mov edx, dword [esp + 0x44]
mov dl, byte [esi + edx + 1]
sub dl, cl
movsx edx, dl
imul edx, eax
shr edx, 8
add dl, cl
mov byte [edi + 2], dl
jmp 0x4301a8
test ebp, ebp
jle 0x430141
cmp esi, dword [esp + 0x78]
jge 0x430691
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x42ffb6
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x430162
jge 0x42ffb6
cmp esi, dword [esp + 0x70]
jl 0x430691
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x42ffb6
sub eax, esi
cdq
idiv ebp
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
sub edx, eax
mov dword [esp + 0x1c], edx
mov edx, eax
imul edx, dword [esp + 0x84]
add edi, edx
mov edx, eax
imul edx, ebx
imul eax, ebp
sub ecx, edx
mov dword [esp + 0x24], edi
add esi, eax
jmp 0x43025d
mov al, byte [esp + 0x83]
inc ecx
mov byte [edi], al
mov dl, byte [ecx + esi]
mov byte [edi + 1], dl
mov al, byte [esi + ecx + 1]
mov byte [edi + 2], al
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x60]
add edi, 3
dec eax
mov dword [esp + 0x2c], eax
jne 0x430006
jmp 0x43024c
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, edx
test eax, eax
jle 0x43024c
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add esi, ebx
add eax, ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], eax
sar esi, 0x10
imul esi, dword [esp + 0x94]
sar eax, 0x10
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x98]
add esi, ecx
mov cl, byte [esi + eax]
mov dl, byte [eax + esi + 1]
mov dh, cl
xor ecx, ecx
mov cl, byte [eax + esi + 2]
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
je 0x430236
mov cl, byte [esi + eax]
inc esi
mov byte [edi], cl
mov dl, byte [esi + eax]
mov byte [edi + 1], dl
mov al, byte [eax + esi + 1]
mov byte [edi + 2], al
mov eax, dword [esp + 0x2c]
add edi, 3
dec eax
mov dword [esp + 0x2c], eax
jne 0x4301d7
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x24]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x74]
dec eax
test eax, eax
mov dword [esp + 0x1c], eax
jg 0x42fe6e
jmp 0x430691
movsx eax, word [esp + 0x14]
mov edx, dword [esp + 0x28]
sub eax, edx
xor edx, edx
cmp eax, edx
mov dword [esp + 0x1c], eax
jle 0x430691
sub ecx, ebx
add esi, ebp
cmp ebp, edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x10], edx
jle 0x430313
mov edx, dword [esp + 0x6c]
lea eax, [ecx + ebp]
cmp eax, edx
jge 0x4302b6
mov eax, edx
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x50]
add edx, ecx
cmp edx, edi
jl 0x4302d0
mov eax, dword [esp + 0x50]
sub eax, edi
add eax, ecx
cdq
idiv ebp
inc eax
mov dword [esp + 0x10], eax
test ebx, ebx
jle 0x43038c
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x4302f4
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x68], eax
jg 0x4302f4
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x4303d8
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x4303c4
jge 0x430341
lea eax, [ecx + ebp]
cmp eax, edi
jl 0x430327
mov eax, edi
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x6c]
add edx, ecx
cmp edx, eax
jge 0x4302d0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
sub eax, edx
jmp 0x4302c6
cmp ebx, edx
jle 0x430364
cmp ecx, dword [esp + 0x6c]
jl 0x430691
cmp ecx, edi
jl 0x4302d0
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x43045b
jge 0x4302d0
cmp ecx, edi
jge 0x430691
cmp ecx, dword [esp + 0x6c]
jge 0x4302d0
mov edi, dword [esp + 0x6c]
mov eax, ecx
sub eax, edi
cdq
idiv ebx
jmp 0x43045b
jge 0x430424
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x4303ae
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x68], eax
jg 0x4303ae
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x4303d8
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
sub eax, edi
add eax, esi
cdq
idiv ebx
mov edx, dword [esp + 0x10]
inc eax
cmp edx, eax
jg 0x4303d8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
lea eax, [eax + edx*2]
mov dword [esp + 0x14], eax
mov eax, edx
imul edx, ebx
imul eax, ebp
add edx, esi
add eax, ecx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xd8]
test edx, edx
mov edx, dword [esp + 0x7c]
je 0x430602
sub edx, edi
mov edi, dword [esp + 0x68]
sub edx, edi
test edx, edx
jle 0x430669
mov dword [esp + 0x40], edx
jmp 0x430492
test ebp, ebp
jle 0x430442
cmp esi, dword [esp + 0x78]
jge 0x430691
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x4303d8
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x43045b
jge 0x4303d8
cmp esi, dword [esp + 0x70]
jl 0x430691
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x4303d8
sub eax, esi
cdq
idiv ebp
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
sub edx, eax
mov dword [esp + 0x1c], edx
mov edx, eax
imul edx, dword [esp + 0x84]
add edi, edx
mov edx, eax
imul edx, ebx
imul eax, ebp
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x74]
sub ecx, edx
add esi, eax
jmp 0x43067e
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0xd8]
add edx, ebx
add eax, ebp
movsx edi, word [edi]
mov dword [esp + 0x20], edx
mov dword [esp + 0x4c], eax
sar edx, 0x10
imul edi, edx
sar eax, 0x10
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x9c], eax
add edi, eax
xor eax, eax
mov al, byte [edi + edx + 0x10]
test eax, eax
mov dword [esp + 0x44], eax
je 0x4305e6
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x98]
imul edx, dword [esp + 0x94]
add edi, edx
mov edx, dword [esp + 0x9c]
mov dx, word [edi + edx*2]
cmp dx, word [esp + 0x5c]
mov dword [esp + 0x8c], edx
je 0x4305e6
cmp eax, 0xff
mov eax, dword [esp + 0x14]
jae 0x4305e3
mov dx, word [eax]
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
and edi, edx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x18]
and eax, edx
and edi, edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x38]
and edx, 0xffff
mov dword [esp + 0x88], edx
and edi, edx
mov edx, eax
and edx, 0xffff
sub edi, edx
mov edx, dword [esp + 0x88]
imul edi, dword [esp + 0x44]
shr edi, 8
add edi, eax
mov eax, dword [esp + 0x38]
and edi, eax
mov eax, dword [esp + 0x18]
and eax, edx
mov edx, dword [esp + 0x2c]
and edx, 0xffff
sub eax, edx
mov edx, dword [esp + 0x2c]
imul eax, dword [esp + 0x44]
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x18]
and eax, edx
mov edx, dword [esp + 0x88]
or edi, eax
mov eax, dword [esp + 0x90]
and eax, edx
mov edx, dword [esp + 0x54]
and edx, 0xffff
sub eax, edx
mov edx, dword [esp + 0x54]
imul eax, dword [esp + 0x44]
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x90]
and eax, edx
or edi, eax
mov eax, dword [esp + 0x14]
mov word [eax], di
jmp 0x4305e6
mov word [eax], dx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
add edx, 2
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
jne 0x43048e
jmp 0x430669
sub edx, edi
mov edi, dword [esp + 0x68]
sub edx, edi
test edx, edx
jle 0x430669
mov dword [esp + 0x2c], edx
jmp 0x430618
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x98]
add edx, ebx
add eax, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x4c], eax
sar edx, 0x10
imul edx, dword [esp + 0x94]
sar eax, 0xf
and al, 0xfe
add edi, edx
mov ax, word [eax + edi]
cmp ax, word [esp + 0x5c]
je 0x430653
mov edx, dword [esp + 0x14]
mov word [edx], ax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
add edx, 2
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], eax
jne 0x430614
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x74]
add edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x1c]
xor edx, edx
dec eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jg 0x430290
mov ecx, dword [esp + 0xb4]
mov edx, dword [0x45a610]
push 5
push ecx
call dword [edx + 0xd8c]
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x45a610]
push 5
push eax
call dword [ecx + 0xd8c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xa0
ret
mov edx, dword [0x45a610]
push 5
push esi
call dword [edx + 0xd8c]
mov eax, dword [0x45a610]
push 5
push edi
call dword [eax + 0xd8c]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa0
ret