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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x8c
mov ebx, ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xb8]
movzx eax, byte [0x808c1c]
mov dword [esp + 0x68], eax
mov eax, 0xb60b60b7
imul esi
add edx, esi
sar edx, 8
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx]
add eax, eax
sub eax, edx
add eax, eax
add eax, eax
add eax, eax
lea edx, [eax + eax]
add edx, edx
add edx, edx
add edx, edx
sub edx, eax
sub esi, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
fmul qword [0x58fdb0]
fdiv qword [0x58fdb8]
fsincos
fld qword [0x58fdc0]
fld st(0)
fmul st(3)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov esi, dword [esp + 0xc]
fmul st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov edx, dword [esp + 0xc]
mov ebp, ebx
shr ebp, 0x1f
add ebp, ebx
sar ebp, 1
mov eax, ebp
neg eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld st(0)
fmul st(2)
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fadd st(1), st(0)
fxch st(1)
fst qword [esp + 0x1c]
mov edi, ecx
shr edi, 0x1f
add edi, ecx
sar edi, 1
mov eax, edi
neg eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld st(0)
fmul st(6)
fsub st(2), st(0)
fxch st(2)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
fxch st(3)
fmul st(5)
fxch st(3)
fmul st(4)
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
fadd st(4), st(0)
fxch st(4)
fst qword [esp + 0x24]
fadd st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov eax, ebx
sub eax, ebp
dec eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld st(0)
fmul st(6)
faddp st(4)
fxch st(2)
fsubr st(3)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
fxch st(1)
fmul st(5)
faddp st(3)
fadd st(2)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
sub ecx, edi
dec ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul st(4), st(0)
fld qword [esp + 0x1c]
fsub st(5)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
fmulp st(3)
fld qword [esp + 0x24]
fadd st(3)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
fsubrp st(3)
fxch st(2)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
faddp st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0xc]
fldcw word [esp]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov eax, ebp
shl eax, 0x10
mov ecx, esi
imul ecx, edi
add eax, ecx
mov ecx, edx
imul ecx, ebp
sub eax, ecx
mov dword [esp + 0x74], eax
mov eax, edi
shl eax, 0x10
imul ebp, esi
sub eax, ebp
imul edi, edx
sub eax, edi
mov ebp, dword [esp + 0x60]
test ebp, ebp
jne 0x439bca
mov eax, dword [esp + 0xb4]
test eax, eax
jle 0x43a4db
xor ebp, ebp
mov eax, dword [esp + 0xb0]
lea ebx, [eax + eax]
add ebx, ebx
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x30]
push ebx
push edi
push esi
call dword [0x5d248c]
add esp, 0xc
add esi, ebx
add edi, ebx
inc ebp
mov eax, dword [esp + 0xb4]
cmp ebp, eax
jl 0x439ba9
jmp 0x43a4db
cmp ebp, 0xb4
je 0x43a87d
cmp ebp, 0x5a
je 0x43a6b1
cmp ebp, 0x10e
je 0x43a4e6
test ebp, ebp
jle 0x43a4db
cmp ebp, 0x5a
jge 0x439e29
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0xb4]
imul ebp, edx
mov ecx, esi
neg ecx
mov edi, dword [esp + 0xb0]
lea edi, [edi + edi]
add edi, edi
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xb4]
mov eax, esi
mov edi, dword [esp + 0x6c]
sub eax, edi
mov ebp, dword [esp + 0x3c]
imul eax, ebp
cdq
mov ecx, dword [esp + 0x88]
idiv ecx
mov ebx, dword [esp + 0x44]
lea edx, [ebx + eax + 2]
mov dword [esp + 0x4c], edx
neg edi
imul edi, ecx
add edi, dword [esp + 0x40]
mov eax, edi
cdq
mov edi, dword [esp + 0x84]
idiv edi
lea ebx, [ebx + eax + 1]
mov eax, esi
mov esi, dword [esp + 0x70]
sub eax, esi
imul eax, ebp
cdq
idiv ecx
mov ebp, dword [esp + 0x48]
lea edx, [ebp + eax + 1]
mov dword [esp + 0x5c], edx
neg esi
imul esi, ecx
add esi, dword [esp + 0x40]
mov eax, esi
cdq
idiv edi
lea eax, [ebp + eax + 2]
mov ebp, dword [esp + 0x4c]
cmp ebp, eax
jge 0x439ccc
mov ebp, eax
test ebp, ebp
jge 0x439cd2
xor ebp, ebp
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jle 0x439cdc
mov ebx, eax
mov eax, dword [esp + 0xb0]
cmp ebx, eax
jl 0x439cf1
mov eax, dword [esp + 0xb0]
lea ebx, [eax - 1]
mov esi, ecx
imul esi, ebp
add esi, dword [esp + 0x74]
mov dword [esp + 0x58], esi
mov eax, ebp
imul eax, dword [esp + 0x84]
add eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x60]
imul esi, dword [esp + 0x7c]
lea edi, [ebp + ebp]
add edi, edi
mov dword [esp + 0x54], edi
mov edx, dword [esp + 0x64]
lea eax, [edx + esi]
mov ecx, dword [esp + 0x68]
push ecx
push edi
push eax
call dword [0x5d2484]
add esp, 0xc
add esi, dword [esp + 0x54]
cmp ebp, ebx
jge 0x439dc9
mov dword [esp + 0x80], ebx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
mov ecx, ebx
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add ebx, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x439db8
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x439db8
test eax, eax
jl 0x439db8
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x439db8
mov dword [esp + 0x5c], edx
add ecx, ecx
add ecx, ecx
imul eax, dword [esp + 0x2c]
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [esi + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [esi + eax + 2], cx
mov edx, dword [esp + 0x5c]
add esi, 4
inc ebp
mov eax, dword [esp + 0x80]
cmp ebp, eax
jl 0x439d55
mov ebx, eax
add esi, dword [esp + 0x64]
neg ebx
add ebx, dword [esp + 0xb0]
add ebx, ebx
add ebx, ebx
mov eax, dword [esp + 0x68]
push eax
push ebx
push esi
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x88]
add dword [esp + 0x50], edx
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0xb4]
cmp ecx, ebx
jl 0x439c51
jmp 0x43a4db
jle 0x43a4db
cmp ebp, 0xb4
jge 0x43a06c
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0xb4]
imul ebp, edx
mov ecx, esi
neg ecx
mov edi, dword [esp + 0xb0]
lea edi, [edi + edi]
add edi, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xb4]
mov eax, esi
mov edi, dword [esp + 0x78]
sub eax, edi
mov ecx, dword [esp + 0x3c]
imul eax, ecx
cdq
mov ebp, dword [esp + 0x88]
idiv ebp
mov ebx, dword [esp + 0x34]
lea edx, [ebx + eax + 2]
mov dword [esp + 0x70], edx
neg edi
imul edi, ebp
add edi, dword [esp + 0x40]
mov eax, edi
cdq
mov edi, dword [esp + 0x84]
idiv edi
lea ebx, [ebx + eax + 1]
sub esi, dword [esp + 0x4c]
imul esi, ecx
mov eax, esi
cdq
idiv ebp
mov esi, dword [esp + 0x38]
lea ecx, [esi + eax + 1]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x4c]
neg eax
imul eax, ebp
add eax, dword [esp + 0x40]
cdq
idiv edi
lea eax, [esi + eax + 2]
cmp ebx, ecx
mov ebp, dword [esp + 0x70]
jle 0x439f07
mov ebx, ecx
cmp ebp, eax
jge 0x439f0d
mov ebp, eax
test ebp, ebp
jge 0x439f13
xor ebp, ebp
mov eax, dword [esp + 0xb0]
cmp ebx, eax
jl 0x439f28
mov eax, dword [esp + 0xb0]
lea ebx, [eax - 1]
mov esi, dword [esp + 0x88]
imul esi, ebp
add esi, dword [esp + 0x74]
mov dword [esp + 0x58], esi
mov eax, ebp
imul eax, dword [esp + 0x84]
add eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x60]
imul esi, dword [esp + 0x7c]
lea edi, [ebp + ebp]
add edi, edi
mov dword [esp + 0x54], edi
mov edx, dword [esp + 0x64]
lea eax, [edx + esi]
mov ecx, dword [esp + 0x68]
push ecx
push edi
push eax
call dword [0x5d2484]
add esp, 0xc
add esi, dword [esp + 0x54]
cmp ebp, ebx
jge 0x43a00c
mov dword [esp + 0x80], ebx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
mov ecx, ebx
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add ebx, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x439ffb
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x439ffb
test eax, eax
jl 0x439ffb
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x439ffb
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x2c]
lea edi, [edx + edx]
add edi, edi
add ecx, ecx
add ecx, ecx
imul eax, edi
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [esi + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [esi + eax + 2], cx
mov edx, dword [esp + 0x5c]
add esi, 4
inc ebp
mov eax, dword [esp + 0x80]
cmp ebp, eax
jl 0x439f91
mov ebx, eax
add esi, dword [esp + 0x64]
neg ebx
add ebx, dword [esp + 0xb0]
add ebx, ebx
add ebx, ebx
mov eax, dword [esp + 0x68]
push eax
push ebx
push esi
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x88]
add dword [esp + 0x50], edx
inc dword [esp + 0x78]
inc dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0xb4]
cmp ecx, ebx
jl 0x439e8c
jmp 0x43a4db
jle 0x43a4db
cmp ebp, 0x10e
jge 0x43a2a6
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0xb4]
imul ebp, edx
mov ecx, esi
neg ecx
mov edi, dword [esp + 0xb0]
lea edi, [edi + edi]
add edi, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov ecx, dword [esp + 0x6c]
mov eax, ecx
neg eax
mov ebx, dword [esp + 0x88]
imul eax, ebx
mov esi, dword [esp + 0x4c]
add eax, esi
cdq
mov edi, dword [esp + 0x84]
idiv edi
mov ebp, dword [esp + 0x44]
lea eax, [ebp + eax + 2]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xb4]
sub eax, ecx
imul eax, dword [esp + 0x38]
cdq
idiv ebx
lea ebp, [ebp + eax + 1]
mov ecx, dword [esp + 0x70]
mov eax, ecx
neg eax
imul eax, ebx
add eax, esi
cdq
idiv edi
mov esi, dword [esp + 0x48]
lea edi, [esi + eax + 1]
mov eax, dword [esp + 0xb4]
sub eax, ecx
imul eax, dword [esp + 0x38]
cdq
idiv ebx
lea eax, [esi + eax + 2]
cmp ebp, edi
mov esi, dword [esp + 0x80]
jle 0x43a14f
mov ebp, edi
cmp esi, eax
jge 0x43a155
mov esi, eax
test esi, esi
jge 0x43a15b
xor esi, esi
mov eax, dword [esp + 0xb0]
cmp ebp, eax
jl 0x43a170
mov eax, dword [esp + 0xb0]
lea ebp, [eax - 1]
imul ebx, esi
add ebx, dword [esp + 0x74]
mov dword [esp + 0x3c], ebx
mov eax, esi
imul eax, dword [esp + 0x84]
add eax, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x60]
imul ebx, dword [esp + 0x34]
lea edi, [esi + esi]
add edi, edi
mov dword [esp + 0x7c], edi
mov edx, dword [esp + 0x64]
lea eax, [edx + ebx]
mov ecx, dword [esp + 0x68]
push ecx
push edi
push eax
call dword [0x5d2484]
add esp, 0xc
add ebx, dword [esp + 0x7c]
cmp esi, ebp
jge 0x43a246
mov dword [esp + 0x78], ebp
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ecx, ebp
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add ebp, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x43a238
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x43a238
test eax, eax
jl 0x43a238
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x43a238
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
lea edi, [edx + edx]
add edi, edi
add ecx, ecx
add ecx, ecx
imul eax, edi
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [ebx + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [ebx + eax + 2], cx
mov edx, dword [esp + 0x40]
add ebx, 4
inc esi
mov eax, dword [esp + 0x78]
cmp esi, eax
jl 0x43a1ce
mov ebp, eax
add ebx, dword [esp + 0x64]
neg ebp
add ebp, dword [esp + 0xb0]
add ebp, ebp
add ebp, ebp
mov eax, dword [esp + 0x68]
push eax
push ebp
push ebx
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x88]
add dword [esp + 0x50], edx
inc dword [esp + 0x6c]
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0xb4]
cmp ecx, ebx
jl 0x43a0cf
jmp 0x43a4db
jle 0x43a4db
cmp ebp, 0x168
jge 0x43a4db
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0xb4]
imul ebp, edx
mov ecx, esi
neg ecx
mov edi, dword [esp + 0xb0]
lea edi, [edi + edi]
add edi, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov ecx, dword [esp + 0x78]
mov eax, ecx
neg eax
mov ebx, dword [esp + 0x88]
imul eax, ebx
mov esi, dword [esp + 0x54]
add eax, esi
cdq
mov edi, dword [esp + 0x84]
idiv edi
mov ebp, dword [esp + 0x34]
lea eax, [ebp + eax + 2]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb4]
sub eax, ecx
imul eax, dword [esp + 0x58]
cdq
idiv ebx
lea ebp, [ebp + eax + 1]
mov ecx, dword [esp + 0x4c]
mov eax, ecx
neg eax
imul eax, ebx
add eax, esi
cdq
idiv edi
mov esi, dword [esp + 0x38]
lea edi, [esi + eax + 1]
mov eax, dword [esp + 0xb4]
sub eax, ecx
imul eax, dword [esp + 0x58]
cdq
idiv ebx
lea eax, [esi + eax + 2]
cmp ebp, edi
mov esi, dword [esp + 0x70]
jle 0x43a383
mov ebp, edi
cmp esi, eax
jge 0x43a389
mov esi, eax
test esi, esi
jge 0x43a38f
xor esi, esi
mov eax, dword [esp + 0xb0]
cmp ebp, eax
jl 0x43a3a4
mov eax, dword [esp + 0xb0]
lea ebp, [eax - 1]
imul ebx, esi
add ebx, dword [esp + 0x74]
mov dword [esp + 0x3c], ebx
mov eax, esi
imul eax, dword [esp + 0x84]
add eax, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x60]
imul ebx, dword [esp + 0x5c]
lea edi, [esi + esi]
add edi, edi
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x64]
lea eax, [edx + ebx]
mov ecx, dword [esp + 0x68]
push ecx
push edi
push eax
call dword [0x5d2484]
add esp, 0xc
add ebx, dword [esp + 0x40]
cmp esi, ebp
jge 0x43a480
mov dword [esp + 0x80], ebp
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov ecx, ebp
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add ebp, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x43a46f
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x43a46f
test eax, eax
jl 0x43a46f
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x43a46f
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x2c]
lea edi, [edx + edx]
add edi, edi
add ecx, ecx
add ecx, ecx
imul eax, edi
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [ebx + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [ebx + eax + 2], cx
mov edx, dword [esp + 0x7c]
add ebx, 4
inc esi
mov eax, dword [esp + 0x80]
cmp esi, eax
jl 0x43a405
mov ebp, eax
add ebx, dword [esp + 0x64]
neg ebp
add ebp, dword [esp + 0xb0]
add ebp, ebp
add ebp, ebp
mov eax, dword [esp + 0x68]
push eax
push ebp
push ebx
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x88]
add dword [esp + 0x50], edx
inc dword [esp + 0x78]
inc dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0xb4]
cmp ecx, ebx
jl 0x43a309
add esp, 0x8c
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov ecx, dword [esp + 0xb0]
lea edi, [ecx + ecx]
add edi, edi
mov dword [esp + 0x70], edi
mov ebp, ecx
shr ebp, 0x1f
add ebp, ecx
sar ebp, 1
mov edi, dword [esp + 0xb4]
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
mov edi, ebp
sub edi, ecx
mov dword [esp + 0x60], edi
add ebp, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
test ebx, ebx
jge 0x43a556
xor ebx, ebx
mov eax, esi
mov edx, dword [esp + 0xb0]
cmp eax, edx
jl 0x43a56d
mov eax, dword [esp + 0xb0]
lea esi, [eax - 1]
mov ebp, dword [esp + 0x88]
imul ebp, ebx
add ebp, dword [esp + 0x74]
mov dword [esp + 0x5c], ebp
mov edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [esp + 0x50]
mov dword [esp + 0x80], edx
mov ebp, edi
imul ebp, dword [esp + 0x70]
lea eax, [ebx + ebx]
add eax, eax
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + ebp]
mov edx, dword [esp + 0x68]
push edx
push eax
push ecx
call dword [0x5d2484]
add esp, 0xc
add ebp, dword [esp + 0x58]
cmp ebx, esi
jge 0x43a65d
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x5c]
mov ecx, esi
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add esi, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x43a64b
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x43a64b
test eax, eax
jl 0x43a64b
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x43a64b
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x2c]
lea edi, [edx + edx]
add edi, edi
add ecx, ecx
add ecx, ecx
imul eax, edi
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [ebp + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [ebp + eax + 2], cx
mov edx, dword [esp + 0x80]
add ebp, 4
inc ebx
mov eax, dword [esp + 0x7c]
cmp ebx, eax
jl 0x43a5da
mov esi, eax
mov edi, dword [esp + 0x40]
add ebp, dword [esp + 0x64]
neg esi
add esi, dword [esp + 0xb0]
add esi, esi
add esi, esi
mov eax, dword [esp + 0x68]
push eax
push esi
push ebp
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x88]
mov dword [esp + 0x50], edx
inc edi
mov ecx, dword [esp + 0xb4]
cmp edi, ecx
jl 0x43a548
jmp 0x43a4db
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jle 0x43a4db
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov ecx, dword [esp + 0xb0]
lea edi, [ecx + ecx]
add edi, edi
mov dword [esp + 0x70], edi
add ebx, ebx
add ebx, ebx
mov ebp, ecx
shr ebp, 0x1f
add ebp, ecx
sar ebp, 1
mov edi, dword [esp + 0xb4]
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
mov edi, ebp
sub edi, ecx
mov dword [esp + 0x60], edi
add ebp, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
test ebx, ebx
jge 0x43a729
xor ebx, ebx
mov eax, esi
mov edx, dword [esp + 0xb0]
cmp eax, edx
jl 0x43a740
mov eax, dword [esp + 0xb0]
lea esi, [eax - 1]
mov ebp, dword [esp + 0x88]
imul ebp, ebx
add ebp, dword [esp + 0x74]
mov dword [esp + 0x5c], ebp
mov edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [esp + 0x50]
mov dword [esp + 0x80], edx
mov ebp, edi
imul ebp, dword [esp + 0x70]
lea eax, [ebx + ebx]
add eax, eax
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + ebp]
mov edx, dword [esp + 0x68]
push edx
push eax
push ecx
call dword [0x5d2484]
add esp, 0xc
add ebp, dword [esp + 0x58]
cmp ebx, esi
jge 0x43a829
mov dword [esp + 0x7c], esi
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x5c]
mov ecx, esi
sar ecx, 0x10
mov eax, edx
sar eax, 0x10
add esi, dword [esp + 0x88]
add edx, dword [esp + 0x84]
test ecx, ecx
jl 0x43a817
mov edi, dword [esp + 0xb0]
cmp ecx, edi
jge 0x43a817
test eax, eax
jl 0x43a817
mov edi, dword [esp + 0xb4]
cmp eax, edi
jge 0x43a817
mov dword [esp + 0x80], edx
add ecx, ecx
add ecx, ecx
imul eax, dword [esp + 0x2c]
add ecx, eax
mov edi, dword [esp + 0x30]
movzx edx, word [ecx + edi]
mov eax, dword [esp + 0x64]
mov word [ebp + eax], dx
movzx ecx, word [ecx + edi + 2]
mov word [ebp + eax + 2], cx
mov edx, dword [esp + 0x80]
add ebp, 4
inc ebx
mov eax, dword [esp + 0x7c]
cmp ebx, eax
jl 0x43a7ad
mov esi, eax
mov edi, dword [esp + 0x40]
add ebp, dword [esp + 0x64]
neg esi
add esi, dword [esp + 0xb0]
add esi, esi
add esi, esi
mov eax, dword [esp + 0x68]
push eax
push esi
push ebp
call dword [0x5d2484]
add esp, 0xc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x88]
mov dword [esp + 0x50], edx
inc edi
mov ecx, dword [esp + 0xb4]
cmp edi, ecx
jl 0x43a71b
jmp 0x43a4db
mov eax, dword [esp + 0xb4]
test eax, eax
jle 0x43a4db
mov eax, dword [esp + 0xb0]
lea eax, [eax + eax]
add eax, eax
mov edx, dword [esp + 0xb4]
mov esi, edx
imul esi, eax
add esi, eax
mov ebx, eax
neg ebx
add esi, ebx
xor ebp, ebp
xor ebx, ebx
neg edx
mov dword [esp + 0x88], edx
mov edx, eax
imul edx, ebx
lea edi, [esi + edx - 4]
test eax, eax
jle 0x43a921
xor ecx, ecx
mov edx, dword [esp + 0x64]
lea edx, [edx + ebp]
add edi, dword [esp + 0x30]
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], esi
mov ebp, dword [esp + 0x84]
sub ebp, ecx
movzx ebx, byte [ebp]
mov byte [edx + ecx], bl
movzx ebx, byte [ebp + 1]
mov byte [edx + ecx + 1], bl
movzx ebx, byte [ebp + 2]
mov byte [edx + ecx + 2], bl
movzx ebx, byte [ebp + 3]
mov byte [edx + ecx + 3], bl
add ecx, 4
cmp ecx, eax
jl 0x43a8e6
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
add ebp, eax
dec ebx
mov edx, dword [esp + 0x88]
cmp ebx, edx
jg 0x43a8b9
jmp 0x43a4db