Function at 0x42daa0
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 0x42dad5
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 0x42dafe
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.0042da10
fstp dword [esp + 0x14]
push esi
call fcn.0042d980
fstp dword [esp + 0x30]
fld dword [esp + 0x18]
fmul dword [0x45234c]
add esp, 8
call fcn.004460a4
fld dword [esp + 0x28]
fmul dword [0x45234c]
mov ebx, eax
mov dword [esp + 0x50], ebx
call fcn.004460a4
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.004460a4
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.004460a4
cmp ax, si
jle 0x42dbe2
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42dbe6
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.004460a4
cmp ax, si
jle 0x42dc1c
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42dc27
cmp ax, word [esp + 0x7c]
jge 0x42dc27
mov dword [esp + 0x7c], eax
fsub dword [esp + 0x38]
fadd dword [esp + 0x34]
call fcn.004460a4
cmp ax, si
jle 0x42dc41
mov esi, eax
mov dword [esp + 0x3c], esi
jmp 0x42dc4c
cmp ax, word [esp + 0x7c]
jge 0x42dc4c
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.004460a4
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.004460a4
cmp ax, di
fstp st(0)
jle 0x42dcab
mov dword [esp + 0x14], eax
jmp 0x42dcb1
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.004460a4
cmp ax, word [esp + 0x14]
jle 0x42dcd1
mov dword [esp + 0x14], eax
jmp 0x42dcdc
cmp ax, di
jge 0x42dcdc
mov edi, eax
mov dword [esp + 0x18], edi
fadd dword [esp + 0x38]
fadd dword [esp + 0x34]
call fcn.004460a4
cmp ax, word [esp + 0x14]
jle 0x42dcf6
mov dword [esp + 0x14], eax
jmp 0x42dd01
cmp ax, di
jge 0x42dd01
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 0x42ff6a
mov edi, dword [esi + 0x1c]
movsx edx, dx
add edx, eax
cmp edx, edi
mov dword [esp + 0x2c], edx
jl 0x42ff6a
cmp ecx, dword [esi + 0x20]
jge 0x42ff6a
movsx edx, word [esp + 0x44]
mov edi, dword [esi + 0x18]
add edx, ecx
cmp edx, edi
mov dword [esp + 0x38], edx
jl 0x42ff6a
mov edx, dword [esi + 0x24]
mov edi, dword [esp + 0x2c]
cmp edi, edx
jle 0x42ddae
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 0x42ddb5
mov dword [esp + 0xac], edi
mov edx, dword [esi + 0x1c]
cmp eax, edx
jge 0x42ddd3
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 0x42ddfd
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 0x42de04
mov dword [esp + 0xa8], edx
mov eax, dword [esi + 0x18]
cmp ecx, eax
jge 0x42de22
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 [0x4595e0]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
push 4
mov eax, dword [eax + 0xde8]
mov dword [edi], ecx
mov edx, dword [0x4595e0]
push edi
shr eax, 3
mov dword [esp + 0x34], eax
call dword [edx + 0xca0]
lea eax, [esp + 0xa0]
push 4
mov dword [esi], eax
mov ecx, dword [0x4595e0]
push esi
call dword [ecx + 0xca0]
mov eax, dword [esi]
test eax, eax
je 0x42ff4d
mov ecx, dword [edi]
test ecx, ecx
mov dword [esp + 0x98], ecx
je 0x42ff4d
mov edx, dword [0x4595e0]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x28]
add edx, 0xddc
push 0
push edx
push eax
call fcn.0043a140
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 [0x4595e0]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], esi
jne 0x42f275
mov ecx, dword [eax + 0xdec]
mov esi, dword [eax + 0xdf0]
mov edi, dword [eax + 0xdf4]
mov eax, dword [esp + 0x2c]
sub eax, 2
mov dword [esp + 0x90], edi
je 0x42eb92
dec eax
je 0x42e54e
dec eax
jne 0x42ff11
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x42ff11
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 0x42e2b9
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 0x42dff1
test ebp, ebp
jle 0x42e2b5
jmp 0x42e299
mov eax, dword [esp + 0x48]
cmp eax, dword [edx + 4]
jge 0x42e007
test ebx, ebx
jle 0x42e2b5
jmp 0x42e299
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [edx + 8]
jl 0x42e01e
test ebp, ebp
jge 0x42e2b5
jmp 0x42e299
mov eax, dword [esp + 0x48]
inc eax
cmp eax, dword [edx + 0xc]
jl 0x42e035
test ebx, ebx
jge 0x42e2b5
jmp 0x42e299
mov ebx, dword [esp + 0xd8]
test ebx, ebx
je 0x42e37c
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 0x42e291
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 0x42e129
mov ebx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x30], edx
jne 0x42e149
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 0x42e15f
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x64], 0
add ebx, ebp
jmp 0x42e163
mov ebx, dword [esp + 0x48]
cmp dword [esp + 0x10], edx
jne 0x42e177
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 0
add ebx, edx
cmp ebx, 0x88
ja 0x42e291
cmp dword [esp + 0x58], 0xff
jae 0x42e2da
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 0x42dfb7
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 0x42df87
jmp 0x42ff11
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 0x42e280
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 0x42e439
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x34], ebx
jne 0x42e459
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 0x42e471
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 0x42e489
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 0x42e541
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 0x42e299
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x42ff11
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 0x42eb6d
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x64], eax
jmp 0x42e5a1
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 0x42e5cd
test ebp, ebp
jle 0x42eb6d
jmp 0x42eb4f
cmp edx, dword [esi + 4]
jge 0x42e5df
test ebx, ebx
jle 0x42eb6d
jmp 0x42eb4f
lea edi, [ecx + 1]
cmp edi, dword [esi + 8]
jl 0x42e5f4
test ebp, ebp
jge 0x42eb6d
jmp 0x42eb4f
lea edi, [edx + 1]
cmp edi, dword [esi + 0xc]
jl 0x42e609
test ebx, ebx
jge 0x42eb6d
jmp 0x42eb4f
mov esi, dword [esp + 0xd8]
test esi, esi
je 0x42e961
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 0x42eb43
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 0x42e6f6
cmp byte [ecx + 1], dh
jne 0x42e6f6
mov bl, byte [esp + 0x5e]
cmp byte [ecx + 2], bl
jne 0x42e6f2
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], ebx
jmp 0x42e6f6
mov ebx, dword [esp + 0x20]
cmp byte [eax], dl
jne 0x42e720
cmp byte [eax + 1], dh
jne 0x42e720
mov bl, byte [esp + 0x5e]
cmp byte [eax + 2], bl
jne 0x42e71c
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
add ebx, eax
jmp 0x42e720
mov ebx, dword [esp + 0x20]
cmp byte [ebp], dl
jne 0x42e73d
cmp byte [ebp + 1], dh
jne 0x42e73d
mov al, byte [esp + 0x5e]
cmp byte [ebp + 2], al
jne 0x42e73d
lea ebp, [esp + 0x40]
add ebx, edi
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x14]
cmp byte [eax], dl
jne 0x42e75d
cmp byte [eax + 1], dh
jne 0x42e75d
mov dl, byte [esp + 0x5e]
cmp byte [eax + 2], dl
jne 0x42e75d
lea eax, [esp + 0x40]
add ebx, esi
mov dword [esp + 0x14], eax
cmp ebx, 0x88
ja 0x42eb43
cmp dword [esp + 0x58], 0xff
jae 0x42e89b
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 0x42eb47
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 0x42eb47
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 0x42e9fe
cmp byte [esi + 1], bh
jne 0x42e9fe
mov al, byte [esi + 2]
cmp al, byte [esp + 0x5e]
jne 0x42e9fe
mov eax, dword [esp + 0x58]
lea esi, [esp + 0x20]
mov dword [esp + 0x10], eax
cmp byte [ecx], bl
jne 0x42ea26
cmp byte [ecx + 1], bh
jne 0x42ea26
mov al, byte [esp + 0x5e]
cmp byte [ecx + 2], al
jne 0x42ea26
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 0x42ea50
cmp byte [eax + 1], bh
jne 0x42ea50
mov cl, byte [eax + 2]
mov al, byte [esp + 0x5e]
cmp cl, al
jne 0x42ea50
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 0x42ea72
cmp byte [edx + 1], bh
jne 0x42ea72
mov cl, byte [esp + 0x5e]
mov al, byte [edx + 2]
cmp al, cl
jne 0x42ea72
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x20]
add eax, edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x88
ja 0x42eb43
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 0x42eb47
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 0x42e599
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 0x42e563
jmp 0x42ff11
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
jle 0x42ff11
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 0x42f250
jmp 0x42ebe0
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 0x42ec18
test ebp, ebp
jle 0x42f250
jmp 0x42f22e
mov eax, dword [esp + 0x34]
cmp eax, dword [edx + 4]
jge 0x42ec2e
test ebx, ebx
jle 0x42f250
jmp 0x42f22e
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [edx + 8]
jl 0x42ec45
test ebp, ebp
jge 0x42f250
jmp 0x42f22e
mov eax, dword [esp + 0x34]
inc eax
cmp eax, dword [edx + 0xc]
jl 0x42ec5c
test ebx, ebx
jge 0x42f250
jmp 0x42f22e
mov ebp, dword [esp + 0xd8]
test ebp, ebp
je 0x42f01b
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 0x42f22a
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 0x42ed77
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x40], ax
jne 0x42ed98
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 0x42edb1
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 0x42edca
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 0x42ef34
cmp dword [esp + 0x4c], 0xff
jae 0x42ef41
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 0x42f22e
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 0x42f226
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 0x42f0ee
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], ebx
cmp word [esp + 0x4c], dx
jne 0x42f10f
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 0x42f128
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 0x42f140
mov edx, dword [esp + 0x10]
xor ebx, ebx
add edx, eax
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x88
ja 0x42f226
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 0x42ebdc
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 0x42eba7
jmp 0x42ff11
mov edx, dword [eax + 0xdec]
mov edi, dword [eax + 0xdf0]
mov eax, dword [eax + 0xdf4]
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 0x42faf7
dec eax
je 0x42f6d9
dec eax
jne 0x42ff11
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 0x42ff11
sub ecx, ebx
add esi, ebp
cmp ebp, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x10], edx
jle 0x42f39d
mov eax, dword [esp + 0x6c]
lea edx, [ecx + ebp]
cmp edx, eax
jge 0x42f340
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
add eax, ecx
cmp eax, edi
jl 0x42f35a
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 0x42f43e
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x42f37e
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x60], eax
jg 0x42f37e
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x42f48a
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x42f476
jge 0x42f3c7
lea edx, [ecx + ebp]
cmp edx, edi
jl 0x42f3b1
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 0x42f35a
mov eax, dword [esp + 0x50]
sub eax, edx
jmp 0x42f350
cmp ebx, edx
jle 0x42f3e6
cmp ecx, dword [esp + 0x6c]
jl 0x42ff11
cmp ecx, edi
jl 0x42f35a
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x42f50d
jge 0x42f35a
cmp ecx, edi
jge 0x42ff11
cmp ecx, dword [esp + 0x6c]
jge 0x42f35a
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 0x42f6c1
jge 0x42f4d6
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x42f460
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x60], eax
jg 0x42f460
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x42f48a
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 0x42f48a
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 0x42f646
sub edx, edi
mov edi, dword [esp + 0x60]
sub edx, edi
test edx, edx
jle 0x42f6ac
mov dword [esp + 0x4c], edx
jmp 0x42f544
test ebp, ebp
jle 0x42f4f4
cmp esi, dword [esp + 0x78]
jge 0x42ff11
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x42f48a
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x42f50d
jge 0x42f48a
cmp esi, dword [esp + 0x70]
jl 0x42ff11
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x42f48a
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 0x42f6c1
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 0x42f62a
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 0x42f62a
cmp eax, 0xff
mov eax, dword [esp + 0x14]
jae 0x42f628
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 0x42f540
jmp 0x42f6ac
sub edx, edi
mov edi, dword [esp + 0x60]
sub edx, edi
test edx, edx
jle 0x42f6ac
mov dword [esp + 0x2c], edx
jmp 0x42f65c
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 0x42f696
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 0x42f658
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 0x42f31c
jmp 0x42ff11
movsx eax, word [esp + 0x14]
sub eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x42ff11
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 0x42f779
mov eax, dword [esp + 0x6c]
lea edx, [ecx + ebp]
cmp edx, eax
jge 0x42f71c
sub eax, ecx
cdq
idiv ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
add eax, ecx
cmp eax, edi
jl 0x42f736
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 0x42f7ea
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x42f75a
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x14], eax
jg 0x42f75a
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x42f836
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x42f822
jge 0x42f7a3
lea edx, [ecx + ebp]
cmp edx, edi
jl 0x42f78d
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 0x42f736
mov eax, dword [esp + 0x50]
sub eax, edx
jmp 0x42f72c
cmp ebx, eax
jle 0x42f7c2
cmp ecx, dword [esp + 0x6c]
jl 0x42ff11
cmp ecx, edi
jl 0x42f736
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x42f9e2
jge 0x42f736
cmp ecx, edi
jge 0x42ff11
cmp ecx, dword [esp + 0x6c]
jge 0x42f736
mov edi, dword [esp + 0x6c]
mov eax, ecx
sub eax, edi
cdq
idiv ebx
jmp 0x42f9e2
jge 0x42f99f
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x42f80c
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x14], eax
jg 0x42f80c
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x42f836
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 0x42f836
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 0x42fa47
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, edx
test eax, eax
jle 0x42facc
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 0x42fa2c
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 0x42fa28
mov eax, dword [esp + 0x88]
cmp eax, 0xff
jae 0x42fa11
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 0x42fa28
test ebp, ebp
jle 0x42f9c1
cmp esi, dword [esp + 0x78]
jge 0x42ff11
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x42f836
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x42f9e2
jge 0x42f836
cmp esi, dword [esp + 0x70]
jl 0x42ff11
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x42f836
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 0x42fadd
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 0x42f886
jmp 0x42facc
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, edx
test eax, eax
jle 0x42facc
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 0x42fab6
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 0x42fa57
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 0x42f6ee
jmp 0x42ff11
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 0x42ff11
sub ecx, ebx
add esi, ebp
cmp ebp, edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x10], edx
jle 0x42fb93
mov edx, dword [esp + 0x6c]
lea eax, [ecx + ebp]
cmp eax, edx
jge 0x42fb36
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 0x42fb50
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 0x42fc0c
mov edx, dword [esp + 0x70]
lea eax, [esi + ebx]
cmp eax, edx
jge 0x42fb74
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x68], eax
jg 0x42fb74
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
add edx, esi
cmp edx, eax
jl 0x42fc58
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
jmp 0x42fc44
jge 0x42fbc1
lea eax, [ecx + ebp]
cmp eax, edi
jl 0x42fba7
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 0x42fb50
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
sub eax, edx
jmp 0x42fb46
cmp ebx, edx
jle 0x42fbe4
cmp ecx, dword [esp + 0x6c]
jl 0x42ff11
cmp ecx, edi
jl 0x42fb50
mov eax, ecx
sub eax, edi
cdq
idiv ebx
inc eax
jmp 0x42fcdb
jge 0x42fb50
cmp ecx, edi
jge 0x42ff11
cmp ecx, dword [esp + 0x6c]
jge 0x42fb50
mov edi, dword [esp + 0x6c]
mov eax, ecx
sub eax, edi
cdq
idiv ebx
jmp 0x42fcdb
jge 0x42fca4
mov edx, dword [esp + 0x78]
lea eax, [esi + ebx]
cmp eax, edx
jl 0x42fc2e
mov eax, edx
sub eax, esi
cdq
idiv ebx
cmp dword [esp + 0x68], eax
jg 0x42fc2e
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
add edx, esi
cmp edx, eax
jge 0x42fc58
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 0x42fc58
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 0x42fe82
sub edx, edi
mov edi, dword [esp + 0x68]
sub edx, edi
test edx, edx
jle 0x42fee9
mov dword [esp + 0x40], edx
jmp 0x42fd12
test ebp, ebp
jle 0x42fcc2
cmp esi, dword [esp + 0x78]
jge 0x42ff11
mov eax, dword [esp + 0x70]
cmp esi, eax
jge 0x42fc58
sub eax, esi
cdq
idiv ebp
inc eax
jmp 0x42fcdb
jge 0x42fc58
cmp esi, dword [esp + 0x70]
jl 0x42ff11
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x42fc58
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 0x42fefe
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 0x42fe66
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 0x42fe66
cmp eax, 0xff
mov eax, dword [esp + 0x14]
jae 0x42fe63
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 0x42fe66
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 0x42fd0e
jmp 0x42fee9
sub edx, edi
mov edi, dword [esp + 0x68]
sub edx, edi
test edx, edx
jle 0x42fee9
mov dword [esp + 0x2c], edx
jmp 0x42fe98
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 0x42fed3
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 0x42fe94
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 0x42fb10
mov ecx, dword [esp + 0xb4]
mov edx, dword [0x4595e0]
push 5
push ecx
call dword [edx + 0xca0]
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x4595e0]
push 5
push eax
call dword [ecx + 0xca0]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xa0
ret
mov edx, dword [0x4595e0]
push 5
push esi
call dword [edx + 0xca0]
mov eax, dword [0x4595e0]
push 5
push edi
call dword [eax + 0xca0]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa0
ret