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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x80
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0xac]
movzx eax, byte [0x872b14]
mov dword [esp + 0x2c], 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 + 0x54], esi
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
fmul qword [0x579bd0]
fdiv qword [0x579bd8]
fsincos
fld qword [0x579be0]
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 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(2)
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
fadd st(1), st(0)
fxch st(1)
fst qword [esp + 0x1c]
mov eax, dword [esp + 0xa0]
mov ebp, eax
shr ebp, 0x1f
add ebp, eax
sar ebp, 1
mov eax, ebp
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 + 0x58], eax
fxch st(3)
fmul st(5)
fxch st(3)
fmul st(4)
mov dword [esp + 0x14], ebp
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 + 0x44], eax
mov eax, ecx
sub eax, edi
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 + 0x48], 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 + 0x5c], eax
mov eax, dword [esp + 0xa0]
sub eax, ebp
dec eax
mov dword [esp + 0x14], eax
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 + 0x64], 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 + 0x50], 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 + 0x60], 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 + 0x34], eax
mov ebx, edi
shl ebx, 0x10
mov eax, esi
imul eax, ebp
add ebx, eax
mov eax, edx
imul eax, edi
sub ebx, eax
mov dword [esp + 0x68], ebx
mov ebx, ebp
shl ebx, 0x10
imul edi, esi
sub ebx, edi
imul ebp, edx
sub ebx, ebp
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x43656b
cmp eax, 0x5a
jge 0x436012
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov edi, dword [esp + 0xa4]
lea ebp, [edi + edi]
add ebp, ebp
mov dword [esp + 0x64], ebp
add ecx, ecx
add ecx, ecx
lea eax, [edi - 1]
mov dword [esp + 0x30], eax
mov ebp, edx
mov eax, dword [esp + 0xa8]
imul ebp, eax
mov edi, esi
neg edi
mov dword [esp + 0x4c], edi
xor edi, edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x34]
lea eax, [eax + edi]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov ecx, edi
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x44]
sub eax, ebx
mov ebp, dword [esp + 0x4c]
imul eax, ebp
cdq
mov edi, dword [esp + 0x78]
idiv edi
mov esi, dword [esp + 0x58]
lea edx, [esi + eax + 1]
mov dword [esp + 0x5c], edx
neg ebx
imul ebx, edi
add ebx, dword [esp + 0x50]
mov eax, ebx
cdq
mov edi, dword [esp + 0x7c]
idiv edi
mov ebx, eax
add ebx, esi
mov eax, dword [esp + 0xa8]
sub eax, ecx
imul eax, ebp
cdq
mov esi, dword [esp + 0x78]
idiv esi
mov ebp, dword [esp + 0x60]
add eax, ebp
mov dword [esp + 0x6c], eax
mov eax, ecx
neg eax
imul eax, esi
add eax, dword [esp + 0x50]
cdq
idiv edi
lea edx, [ebp + eax + 1]
mov edi, dword [esp + 0x5c]
cmp edi, edx
jge 0x435f41
mov edi, edx
test edi, edi
jge 0x435f47
xor edi, edi
mov edx, dword [esp + 0x6c]
cmp ebx, edx
jle 0x435f51
mov ebx, edx
mov edx, dword [esp + 0xa4]
cmp ebx, edx
jl 0x435f60
mov ebx, dword [esp + 0x30]
imul esi, edi
add esi, dword [esp + 0x68]
mov ebp, edi
imul ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x40]
lea edx, [edi + edi]
add edx, edx
add edx, dword [esp + 0x54]
cmp edi, ebx
jge 0x435fdc
add edx, dword [esp + 0x3c]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
sar eax, 0xf
shr eax, 0x10
add eax, esi
sar eax, 0x10
mov ebx, ebp
sar ebx, 0xf
shr ebx, 0x10
add ebx, ebp
sar ebx, 0x10
add esi, dword [esp + 0x78]
add ebp, dword [esp + 0x7c]
add eax, eax
add eax, eax
imul ebx, dword [esp + 0x70]
add eax, ebx
movzx ebx, word [eax + ecx]
mov word [edx], bx
movzx eax, word [eax + ecx + 2]
mov word [edx + 2], ax
add edx, 4
inc edi
mov eax, dword [esp + 0x74]
cmp edi, eax
jl 0x435f8f
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x78]
add dword [esp + 0x40], edx
inc dword [esp + 0x44]
inc ecx
mov ebx, dword [esp + 0x54]
add ebx, dword [esp + 0x64]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x48]
cmp ecx, ebp
jl 0x435ecb
jmp 0x4365c9
jle 0x43656b
cmp eax, 0xb4
jge 0x4361db
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov ebp, dword [esp + 0xa4]
lea ebp, [ebp + ebp]
add ebp, ebp
add ecx, ecx
add ecx, ecx
mov edi, edx
mov eax, dword [esp + 0xa8]
imul edi, eax
mov dword [esp + 0x4c], edi
mov edi, esi
neg edi
mov dword [esp + 0x60], edi
xor edi, edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x50]
lea eax, [eax + edi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov ecx, edi
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x5c]
sub eax, ebx
mov ebp, dword [esp + 0x60]
imul eax, ebp
cdq
mov edi, dword [esp + 0x78]
idiv edi
mov esi, dword [esp + 0x48]
lea edx, [esi + eax + 1]
mov dword [esp + 0x58], edx
neg ebx
imul ebx, edi
add ebx, dword [esp + 0x4c]
mov eax, ebx
cdq
mov edi, dword [esp + 0x7c]
idiv edi
mov ebx, eax
add ebx, esi
mov eax, dword [esp + 0xa8]
sub eax, ecx
imul eax, ebp
cdq
mov ebp, dword [esp + 0x78]
idiv ebp
mov esi, eax
mov ebp, dword [esp + 0x64]
add esi, ebp
mov dword [esp + 0x6c], esi
mov eax, ecx
neg eax
imul eax, dword [esp + 0x78]
add eax, dword [esp + 0x4c]
cdq
idiv edi
lea edx, [ebp + eax + 1]
cmp ebx, esi
mov edi, dword [esp + 0x58]
jle 0x436104
mov ebx, esi
cmp edi, edx
jge 0x43610a
mov edi, edx
test edi, edi
jge 0x436110
xor edi, edi
mov edx, dword [esp + 0xa4]
cmp ebx, edx
jl 0x436125
mov eax, dword [esp + 0xa4]
lea ebx, [eax - 1]
mov esi, dword [esp + 0x78]
imul esi, edi
add esi, dword [esp + 0x68]
mov ebp, edi
imul ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x40]
lea edx, [edi + edi]
add edx, edx
add edx, dword [esp + 0x54]
cmp edi, ebx
jge 0x4361a5
add edx, dword [esp + 0x3c]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
sar eax, 0xf
shr eax, 0x10
add eax, esi
sar eax, 0x10
mov ebx, ebp
sar ebx, 0xf
shr ebx, 0x10
add ebx, ebp
sar ebx, 0x10
add esi, dword [esp + 0x78]
add ebp, dword [esp + 0x7c]
add eax, eax
add eax, eax
imul ebx, dword [esp + 0x70]
add eax, ebx
movzx ebx, word [eax + ecx]
mov word [edx], bx
movzx eax, word [eax + ecx + 2]
mov word [edx + 2], ax
add edx, 4
inc edi
mov eax, dword [esp + 0x74]
cmp edi, eax
jl 0x436158
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x78]
add dword [esp + 0x40], edx
inc dword [esp + 0x5c]
inc ecx
mov ebx, dword [esp + 0x54]
add ebx, dword [esp + 0x34]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
jl 0x43608a
jmp 0x4365c9
jle 0x43656b
cmp eax, 0x10e
jge 0x4363a0
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov ebp, dword [esp + 0xa4]
lea ebp, [ebp + ebp]
add ebp, ebp
add ecx, ecx
add ecx, ecx
mov edi, edx
mov eax, dword [esp + 0xa8]
imul edi, eax
mov dword [esp + 0x4c], edi
mov edi, esi
neg edi
mov dword [esp + 0x64], edi
xor edi, edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x34]
lea eax, [eax + edi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov ecx, edi
mov ebx, dword [esp + 0x44]
mov eax, ebx
neg eax
mov edi, dword [esp + 0x78]
imul eax, edi
mov ebp, dword [esp + 0x4c]
add eax, ebp
cdq
mov esi, dword [esp + 0x7c]
idiv esi
mov edx, dword [esp + 0x58]
lea eax, [edx + eax + 1]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa8]
sub eax, ebx
imul eax, dword [esp + 0x64]
cdq
idiv edi
mov ebx, eax
add ebx, dword [esp + 0x58]
mov eax, ecx
neg eax
imul eax, edi
add eax, ebp
cdq
idiv esi
mov esi, eax
mov ebp, dword [esp + 0x60]
add esi, ebp
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0xa8]
sub eax, ecx
imul eax, dword [esp + 0x64]
cdq
idiv edi
lea edx, [ebp + eax + 1]
cmp ebx, esi
mov edi, dword [esp + 0x5c]
jle 0x4362c9
mov ebx, esi
cmp edi, edx
jge 0x4362cf
mov edi, edx
test edi, edi
jge 0x4362d5
xor edi, edi
mov edx, dword [esp + 0xa4]
cmp ebx, edx
jl 0x4362ea
mov eax, dword [esp + 0xa4]
lea ebx, [eax - 1]
mov esi, dword [esp + 0x78]
imul esi, edi
add esi, dword [esp + 0x68]
mov ebp, edi
imul ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x40]
lea edx, [edi + edi]
add edx, edx
add edx, dword [esp + 0x54]
cmp edi, ebx
jge 0x43636a
add edx, dword [esp + 0x3c]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
sar eax, 0xf
shr eax, 0x10
add eax, esi
sar eax, 0x10
mov ebx, ebp
sar ebx, 0xf
shr ebx, 0x10
add ebx, ebp
sar ebx, 0x10
add esi, dword [esp + 0x78]
add ebp, dword [esp + 0x7c]
add eax, eax
add eax, eax
imul ebx, dword [esp + 0x70]
add eax, ebx
movzx ebx, word [eax + ecx]
mov word [edx], bx
movzx eax, word [eax + ecx + 2]
mov word [edx + 2], ax
add edx, 4
inc edi
mov eax, dword [esp + 0x74]
cmp edi, eax
jl 0x43631d
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x78]
add dword [esp + 0x40], edx
inc dword [esp + 0x44]
inc ecx
mov ebx, dword [esp + 0x54]
add ebx, dword [esp + 0x50]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
jl 0x436253
jmp 0x4365c9
jle 0x43656b
cmp eax, 0x168
jge 0x4365c9
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov ebp, dword [esp + 0xa4]
lea ebp, [ebp + ebp]
add ebp, ebp
mov edi, edx
mov eax, dword [esp + 0xa8]
imul edi, eax
mov dword [esp + 0x4c], edi
mov edi, esi
neg edi
mov dword [esp + 0x60], edi
xor edi, edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x50]
lea eax, [eax + edi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x70], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov ecx, edi
mov ebx, dword [esp + 0x5c]
mov eax, ebx
neg eax
mov edi, dword [esp + 0x78]
imul eax, edi
mov ebp, dword [esp + 0x4c]
add eax, ebp
cdq
mov esi, dword [esp + 0x7c]
idiv esi
mov edx, dword [esp + 0x48]
lea eax, [edx + eax + 1]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
sub eax, ebx
imul eax, dword [esp + 0x60]
cdq
idiv edi
mov ebx, eax
add ebx, dword [esp + 0x48]
mov eax, ecx
neg eax
imul eax, edi
add eax, ebp
cdq
idiv esi
mov esi, eax
mov ebp, dword [esp + 0x64]
add esi, ebp
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0xa8]
sub eax, ecx
imul eax, dword [esp + 0x60]
cdq
idiv edi
lea edx, [ebp + eax + 1]
cmp ebx, esi
mov edi, dword [esp + 0x58]
jle 0x43648a
mov ebx, esi
cmp edi, edx
jge 0x436490
mov edi, edx
test edi, edi
jge 0x436496
xor edi, edi
mov edx, dword [esp + 0xa4]
cmp ebx, edx
jl 0x4364ab
mov eax, dword [esp + 0xa4]
lea ebx, [eax - 1]
mov esi, dword [esp + 0x78]
imul esi, edi
add esi, dword [esp + 0x68]
mov ebp, edi
imul ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x40]
lea edx, [edi + edi]
add edx, edx
add edx, dword [esp + 0x54]
cmp edi, ebx
jge 0x436538
mov eax, dword [esp + 0x70]
lea eax, [eax + eax]
add eax, eax
mov dword [esp + 0x6c], eax
add edx, dword [esp + 0x3c]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
sar eax, 0xf
shr eax, 0x10
add eax, esi
sar eax, 0x10
mov ebx, ebp
sar ebx, 0xf
shr ebx, 0x10
add ebx, ebp
sar ebx, 0x10
add esi, dword [esp + 0x78]
add ebp, dword [esp + 0x7c]
add eax, eax
add eax, eax
imul ebx, dword [esp + 0x6c]
add eax, ebx
movzx ebx, word [eax + ecx]
mov word [edx], bx
movzx eax, word [eax + ecx + 2]
mov word [edx + 2], ax
add edx, 4
inc edi
mov eax, dword [esp + 0x74]
cmp edi, eax
jl 0x4364eb
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x78]
add dword [esp + 0x40], edx
inc dword [esp + 0x5c]
inc ecx
mov ebx, dword [esp + 0x54]
add ebx, dword [esp + 0x34]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
jl 0x436414
jmp 0x4365c9
test eax, eax
jne 0x4365ae
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
xor ebp, ebp
mov eax, dword [esp + 0xa4]
lea ebx, [eax + eax]
add ebx, ebx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
push ebx
push edi
push esi
call dword [0x5b856c]
add esp, 0xc
add esi, ebx
add edi, ebx
inc ebp
mov eax, dword [esp + 0xa8]
cmp ebp, eax
jl 0x436590
jmp 0x4365c9
cmp eax, 0xb4
je 0x436932
cmp eax, 0x5a
je 0x436781
cmp eax, 0x10e
je 0x4365d4
add esp, 0x80
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov dword [esp + 0x70], ecx
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0xa4]
mov ebp, ecx
shr ebp, 0x1f
add ebp, ecx
sar ebp, 1
mov edi, dword [esp + 0xa8]
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov edi, ebp
sub edi, eax
mov dword [esp + 0x54], edi
add ebp, eax
lea eax, [ecx + ecx]
add eax, eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x70], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x44]
test edi, edi
jge 0x436642
xor edi, edi
mov eax, esi
mov edx, dword [esp + 0xa4]
cmp eax, edx
jl 0x436659
mov eax, dword [esp + 0xa4]
lea esi, [eax - 1]
mov ebx, dword [esp + 0x78]
imul ebx, edi
add ebx, dword [esp + 0x68]
mov dword [esp + 0x50], ebx
mov ebp, edi
imul ebp, dword [esp + 0x7c]
add ebp, dword [esp + 0x40]
mov dword [esp + 0x34], ebp
mov ebx, dword [esp + 0x30]
imul ebx, dword [esp + 0x48]
lea ebp, [edi + edi]
add ebp, ebp
mov eax, dword [esp + 0x3c]
lea ecx, [eax + ebx]
mov edx, dword [esp + 0x2c]
push edx
push ebp
push ecx
call dword [0x5b8564]
add esp, 0xc
add ebx, ebp
cmp edi, esi
jge 0x43672b
mov eax, dword [esp + 0x70]
lea eax, [eax + eax]
add eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
mov ebp, eax
sar ebp, 0x10
mov edx, dword [esp + 0x34]
mov edi, edx
sar edi, 0x10
add ebp, ebp
add ebp, ebp
imul edi, dword [esp + 0x6c]
add ebp, edi
add eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
add edx, dword [esp + 0x7c]
mov dword [esp + 0x34], edx
movzx eax, byte [ebp + esi]
mov edi, dword [esp + 0x3c]
mov byte [ebx + edi], al
movzx edx, byte [ebp + esi + 1]
mov byte [ebx + edi + 1], dl
movzx ecx, byte [ebp + esi + 2]
mov byte [ebx + edi + 2], cl
movzx eax, byte [ebp + esi + 3]
mov edx, edi
mov byte [ebx + edx + 3], al
add ebx, 4
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x74]
cmp eax, edx
jl 0x4366bf
mov esi, edx
add ebx, dword [esp + 0x3c]
neg esi
add esi, dword [esp + 0xa4]
add esi, esi
add esi, esi
mov eax, dword [esp + 0x2c]
push eax
push esi
push ebx
call dword [0x5b8564]
add esp, 0xc
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x40]
add edx, dword [esp + 0x78]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0xa8]
cmp ecx, ebx
jl 0x436634
jmp 0x4365c9
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov dword [esp + 0x70], ecx
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0xa4]
mov ebp, ecx
shr ebp, 0x1f
add ebp, ecx
sar ebp, 1
mov edi, dword [esp + 0xa8]
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov edi, ebp
sub edi, eax
mov dword [esp + 0x54], edi
add ebp, eax
lea eax, [ecx + ecx]
add eax, eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
test edi, edi
jge 0x4367ef
xor edi, edi
mov eax, esi
mov edx, dword [esp + 0xa4]
cmp eax, edx
jl 0x436806
mov eax, dword [esp + 0xa4]
lea esi, [eax - 1]
mov ebp, dword [esp + 0x78]
imul ebp, edi
add ebp, dword [esp + 0x68]
mov dword [esp + 0x44], ebp
mov edx, edi
imul edx, dword [esp + 0x7c]
add edx, ebx
mov dword [esp + 0x48], edx
mov ebp, dword [esp + 0x30]
imul ebp, dword [esp + 0x34]
lea eax, [edi + edi]
add eax, eax
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x3c]
lea ecx, [ecx + ebp]
mov edx, dword [esp + 0x2c]
push edx
push eax
push ecx
call dword [0x5b8564]
add esp, 0xc
add ebp, dword [esp + 0x4c]
cmp edi, esi
jge 0x4368e4
mov eax, dword [esp + 0x70]
lea eax, [eax + eax]
add eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
mov esi, eax
sar esi, 0x10
mov edx, dword [esp + 0x48]
mov edi, edx
sar edi, 0x10
add esi, esi
add esi, esi
imul edi, dword [esp + 0x4c]
add esi, edi
add eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
add edx, dword [esp + 0x7c]
mov dword [esp + 0x48], edx
movzx eax, byte [esi + ebx]
mov edi, dword [esp + 0x3c]
mov byte [ebp + edi], al
movzx edx, byte [esi + ebx + 1]
mov byte [ebp + edi + 1], dl
movzx ecx, byte [esi + ebx + 2]
mov byte [ebp + edi + 2], cl
movzx eax, byte [esi + ebx + 3]
mov edx, edi
mov byte [ebp + edx + 3], al
add ebp, 4
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x74]
cmp eax, edx
jl 0x436874
mov esi, edx
mov ebx, dword [esp + 0x40]
add ebp, dword [esp + 0x3c]
neg esi
add esi, dword [esp + 0xa4]
add esi, esi
add esi, esi
mov eax, dword [esp + 0x2c]
push eax
push esi
push ebp
call dword [0x5b8564]
add esp, 0xc
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
add ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0xa8]
cmp edx, ecx
jl 0x4367e1
jmp 0x4365c9
mov eax, dword [esp + 0xa8]
test eax, eax
jle 0x4365c9
mov ecx, dword [esp + 0xa4]
lea ecx, [ecx + ecx]
add ecx, ecx
mov eax, dword [esp + 0xa8]
mov edi, eax
imul edi, ecx
add edi, ecx
mov ebp, ecx
neg ebp
add edi, ebp
xor esi, esi
xor ebp, ebp
neg eax
mov dword [esp + 0x68], eax
mov eax, ecx
imul eax, ebp
lea ebx, [edi + eax - 4]
test ecx, ecx
jle 0x4369cd
xor edx, edx
mov eax, dword [esp + 0x3c]
lea eax, [eax + esi]
add ebx, dword [esp + 0x38]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edi
mov ebp, dword [esp + 0x58]
sub ebp, edx
movzx ebx, byte [ebp]
mov byte [eax + edx], bl
movzx ebx, byte [ebp + 1]
mov byte [eax + edx + 1], bl
movzx ebx, byte [ebp + 2]
mov byte [eax + edx + 2], bl
movzx ebx, byte [ebp + 3]
mov byte [eax + edx + 3], bl
add edx, 4
cmp edx, ecx
jl 0x436995
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
add esi, ecx
dec ebp
mov eax, dword [esp + 0x68]
cmp ebp, eax
jg 0x43696b
jmp 0x4365c9