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

Disassembly:
push ebp
mov eax, 0x303c
push edi
push esi
push ebx
call fcn.00443b10
sub esp, eax
mov eax, dword [esp + 0x3078]
mov dword [esp + 4], 0
lea ebp, [eax + eax*4]
imul eax, eax, 0x254
lea edx, [ebp*4]
lea esi, [ebp + 0x14]
mov dword [esp + 0x24], edx
shl ebp, 3
lea edx, [esp + 0x11a0]
mov dword [esp + 8], eax
lea ecx, [ebp + 0xa0]
mov dword [esp], edx
imul esi, dword [esp + 0x3070]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], edx
call sub.msvcrt.dll_memset
cmp dword [esp + 0x3070], 0x10
je 0x437eb4
cmp dword [esp + 0x3070], 0xc
je 0x437cb8
mov eax, ebp
add eax, 0x9f
js 0x437e36
mov ecx, dword [esp + 0x3050]
mov ebx, 0xffff8000
mov edi, 0x7fff
lea esi, [esp + 0x520]
fld dword [ecx + eax*4]
mov ebp, ebx
fistp dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, 0xffff8000
cmovge ebp, edx
cmp edx, 0x7fff
mov edx, edi
cmovle edx, ebp
mov word [esi + eax*2], dx
sub eax, 1
cmp eax, 0xffffffff
jne 0x436d83
lea ebx, [esp + 0xca0]
lea edi, [esp + 0x78]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x7c], 0
call fcn.0043fed0
mov edx, dword [esp + 0x24]
add edx, 0x4f
js 0x437e4d
lea ecx, [esp + 0x2a0]
mov eax, edx
mov dword [esp + 0x38], ecx
lea esi, [esi]
fild word [ebx + eax*2]
fstp dword [ecx + eax*4]
sub eax, 1
cmp eax, 0xffffffff
jne 0x436e00
test edx, edx
jle 0x436e42
fld dword [esp + edx*4 + 0x2a0]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
lea eax, [ecx + edx*4 + 0x138]
lea edx, [esp + 0x29c]
nop
fld dword [eax]
fadd st(1), st(0)
fxch st(1)
fstp dword [eax + 4]
sub eax, 4
cmp eax, edx
jne 0x436e30
fstp st(0)
mov eax, dword [esp + 0x3078]
sar eax, 1
test eax, eax
mov dword [esp + 0x30], eax
jle 0x436f27
lea ebx, [esp + 0x3e0]
mov dword [esp + 0x24], 0
lea esi, [esi]
lea edi, [edi]
lea edi, [ebx - 0x20]
mov dword [esp + 8], 0x28
mov dword [esp + 4], edi
lea ebp, [esp + 0x11c4]
mov dword [esp], ebx
lea esi, [ebx - 0x120]
call fcn.0043fe60
mov dword [esp + 4], 0x28
fstp qword [esp + 0x28]
mov dword [esp], edi
call fcn.00437f60
fadd dword [0x456b9c]
fld st(0)
fsqrt
fdivr qword [esp + 0x28]
fadd dword [esp + 0x11c0]
fstp dword [esp + 0x11c0]
sub edi, 4
fstp qword [esp + 0x10]
mov dword [esp + 8], 0x28
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0043fe60
fld dword [edi]
fld dword [edi + 0xa0]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
fsubp st(1)
fld qword [esp + 0x10]
faddp st(1)
fld st(0)
fsqrt
fdivp st(2)
fxch st(1)
fadd dword [ebp]
fstp dword [ebp]
add ebp, 4
cmp edi, esi
jne 0x436ec4
fstp st(0)
add dword [esp + 0x24], 1
add ebx, 0xa0
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x24], eax
jne 0x436e70
mov eax, 0x48
fld dword [0x456ba0]
fld dword [esp + eax*4 + 0x11a0]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul st(2)
fmul st(1)
fsubp st(1)
fstp dword [esp + eax*4 + 0x11a0]
sub eax, 1
cmp eax, 7
jne 0x436f32
fstp st(0)
mov edx, dword [esp + 0x3074]
lea eax, [esp + 0x11c0]
mov dword [esp + 8], 0x41
lea ecx, [esp + 0x114]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea ebx, [edx + edx + 4]
mov dword [esp + 0xc], ebx
call fcn.0043ffa0
movsx eax, word [esp + 0x3078]
mov ebp, dword [esp + 0x38]
fld dword [esp + 0x11c0]
fld dword [0x456b90]
lea eax, [eax + eax*4]
shl eax, 4
add ebp, eax
xor eax, eax
lea esi, [esi]
fld dword [ebp + eax*4]
add eax, 1
fmul st(0)
cmp eax, 0x50
faddp st(1)
jne 0x436fb0
fmul dword [0x456ba4]
fld st(1)
fmul st(2)
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x437c5e
fld dword [esp + 0x3068]
test ebx, ebx
fmul st(1)
jle 0x43701d
fxch st(1)
xor eax, eax
fcompi st(1)
ja 0x437000
fstp st(0)
xor ebx, ebx
jmp 0x437021
fld dword [esp + eax*4 + 0x11c0]
fcompi st(1)
jbe 0x437b90
mov edx, dword [esp + eax*4 + 0x114]
lea edx, [edx + edx + 0x10]
mov dword [esp + eax*4 + 0x114], edx
add eax, 1
cmp eax, ebx
jne 0x436ff1
fstp st(0)
jmp 0x437021
fstp st(0)
fstp st(0)
lea edx, [esp + 0x174]
xor eax, eax
mov word [esp + 0x18a], 0
mov dword [esp + 0x3c], edx
nop
lea esi, [esi]
mov dword [esp + eax*4 + 0x18c], 0
add eax, 1
cmp eax, 0x43
jbe 0x437040
test ebx, ebx
jle 0x437078
lea eax, [esp + 0x114]
lea ecx, [esp + ebx*4 + 0x114]
mov edx, dword [eax]
add eax, 4
cmp eax, ecx
mov word [esp + edx*2 + 0x174], 1
jne 0x437065
movzx edx, word [esp + 0x298]
mov eax, 0x92
movzx ecx, word [esp + 0x296]
lea esi, [esi]
mov esi, edx
movzx edx, word [esp + eax*2 + 0x170]
mov ebx, ecx
lea ecx, [ebx + esi]
add ecx, edx
mov word [esp + eax*2 + 0x174], cx
movzx ecx, word [esp + eax*2 + 0x16e]
add ebx, ecx
add ebx, edx
mov word [esp + eax*2 + 0x172], bx
sub eax, 2
lea ebx, [eax - 0xf]
cmp eax, 0x10
jne 0x437090
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x194]
add ebx, ebx
sub ecx, ebx
lea ebx, [ecx + 0x20]
lea esi, [esi]
movzx ecx, word [edx - 2]
add cx, word [edx]
add cx, word [edx - 4]
mov word [edx], cx
sub edx, 2
cmp edx, ebx
jne 0x4370e0
mov edx, 0x10
mov dword [esp + 0x4c], 0
xor ebx, ebx
lea ecx, [edx + 1]
cmp word [esp + ecx*2 + 0x174], 0
jle 0x43711c
mov dword [esp + ebx*4 + 0x114], edx
add ebx, 1
cmp ecx, 0x90
mov edx, ecx
jne 0x437104
mov dword [esp + 0x4c], ebx
movzx ecx, word [esp + 0x298]
mov dl, 0x92
movzx ebx, word [esp + 0x296]
movzx esi, word [esp + 0x294]
mov edi, esi
mov ebp, ecx
movzx ecx, word [esp + edx*2 + 0x16e]
lea esi, [ebx + edi]
movzx ebx, word [esp + edx*2 + 0x16c]
add ebp, esi
add ebp, ecx
add esi, ebx
mov word [esp + edx*2 + 0x174], bp
add esi, ecx
mov word [esp + edx*2 + 0x172], si
movzx esi, word [esp + edx*2 + 0x16a]
add edi, esi
add edi, ecx
add edi, ebx
mov word [esp + edx*2 + 0x170], di
sub edx, 3
lea edi, [edx - 0xf]
cmp edx, 0x11
jne 0x437144
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x196]
add edi, edi
sub ecx, edi
lea ebx, [ecx + 0x22]
lea esi, [esi]
lea edi, [edi]
movzx ecx, word [edx - 2]
add cx, word [edx]
add cx, word [edx - 4]
add cx, word [edx - 6]
mov word [edx], cx
sub edx, 2
cmp edx, ebx
jne 0x4371b0
mov dword [esp + 0x44], 0
xor edx, edx
cmp word [esp + eax*2 + 0x174], 0
jle 0x4371ec
lea ecx, [eax - 2]
mov word [esp + edx*2 + 0x174], cx
add edx, 1
add eax, 1
cmp eax, 0x93
jne 0x4371d3
mov edi, dword [esp + 0x40]
xor al, al
mov ecx, 0x254
mov dword [esp + 0x44], edx
rep stosd dword es:[edi], eax
lea eax, [esp + 0xa20]
mov ebx, dword [esp + 0x3050]
add ebx, 0x280
cmp dword [esp + 0x3070], 8
cmovne ebx, eax
mov eax, dword [esp + 0x3078]
test eax, eax
jle 0x437316
lea ecx, [esp + edx*2 + 0x174]
mov dword [esp + 0x38], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 4], 0x28
mov dword [esp], ebx
call fcn.00437f60
mov eax, dword [esp + 0x44]
fstp qword [esp + 0x30]
test eax, eax
je 0x4372fa
imul eax, dword [esp + 0x38], 0x95
lea ebp, [esp + 0x174]
mov dword [esp + 0x24], eax
nop
lea esi, [esi]
movsx esi, word [ebp]
mov edi, ebx
mov dword [esp + 8], 0x28
mov dword [esp + 4], ebx
lea edx, [esi*4]
sub edi, edx
mov dword [esp], edi
call fcn.0043fe60
mov dword [esp + 4], 0x28
mov dword [esp], edi
fstp qword [esp + 0x10]
call fcn.00437f60
fldz
fld st(0)
fld qword [esp + 0x10]
fcomi st(1)
fstp st(1)
jbe 0x4372e0
fstp st(1)
fmul st(0)
fxch st(1)
fmul qword [esp + 0x30]
fadd dword [0x456b98]
fdivp st(1)
jmp 0x4372e4
fstp st(0)
fstp st(1)
mov eax, dword [esp + 0x24]
add ebp, 2
add eax, esi
cmp ebp, dword [esp + 0x28]
fstp dword [esp + eax*4 + 0x11a0]
jne 0x437280
add dword [esp + 0x38], 1
add ebx, 0xa0
mov edx, dword [esp + 0x3078]
cmp dword [esp + 0x38], edx
jne 0x437248
mov eax, dword [esp + 0x3064]
fldz
fstp dword [esp + 0x54]
test eax, eax
jle 0x43736c
cmp dword [esp + 0x3070], 0xc
je 0x437b55
mov eax, dword [esp + 0x3064]
sar eax, 1
cmp dword [esp + 0x3070], 0x10
cmovne eax, dword [esp + 0x3064]
mov dword [esp + 0x3064], eax
fild dword [esp + 0x3064]
fldlg2
fxch st(1)
fyl2x
fmul qword [0x456ba8]
fstp dword [esp + 0x54]
cmp dword [esp + 0x3078], 4
je 0x437bd2
mov dword [esp + 0x30], 0x456d48
mov ebp, 3
mov dword [esp + 0x28], 3
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x437e5f
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x114]
mov dword [esp + 0x24], ebp
fild dword [esp + 0x3078]
mov dword [esp + 0x38], eax
fld dword [0x456bb0]
mov dword [esp + 0x4c], 0xffffffff
fmul st(1)
mov edi, dword [esp + 0x3078]
mov dword [esp + 0x5c], 0
lea edx, [eax + edx*4]
mov dword [esp + 0x44], edx
fld dword [esp + 0x306c]
fmul st(0)
fmul st(2)
fstp dword [esp + 0x48]
fld dword [0x456b94]
fldz
fst dword [esp + 0x58]
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x38]
xor esi, esi
mov ebp, dword [eax]
nop
lea esi, [esi]
mov dword [esp + esi*4 + 0x90], 0
test edi, edi
jle 0x43744f
mov edx, dword [esp + 0x30]
fld st(0)
xor eax, eax
add edx, esi
imul ebx, eax, 0x95
movsx ecx, byte [edx]
add eax, 1
add edx, dword [esp + 0x24]
add ebx, ebp
add ecx, ebx
cmp eax, edi
fadd dword [esp + ecx*4 + 0x11a0]
jne 0x437429
fstp dword [esp + esi*4 + 0x90]
add esi, 1
cmp dword [esp + 0x28], esi
jg 0x437410
mov ebx, dword [esp + 0x28]
xor edx, edx
xor eax, eax
fld dword [0x456b94]
lea esi, [esi]
lea edi, [edi]
fld dword [esp + eax*4 + 0x90]
fxch st(1)
fcomi st(1)
fcmovb st(0), st(1)
fstp st(1)
cmovb edx, eax
add eax, 1
cmp ebx, eax
mov ecx, edx
jg 0x437470
fldz
fxch st(1)
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x3064]
fcomi st(1)
fcmovb st(0), st(1)
fstp st(1)
fild dword [esp + 0x6c]
test eax, eax
fldlg2
fxch st(1)
fyl2x
fmul qword [0x456ba8]
fld st(0)
fmul st(5)
fsubr st(2)
jle 0x4374e3
fxch st(1)
fsub dword [esp + 0x54]
mov edx, dword [esp + 0x3060]
fmul st(0)
fld dword [edx]
fmul st(7)
fmul dword [0x456bb0]
fmul st(1)
fxch st(1)
fadd dword [0x456bb4]
fdivp st(1)
fsubp st(1)
jmp 0x4374e5
fstp st(1)
fcomi st(3)
jbe 0x437530
fld dword [esp + 0x48]
fxch st(2)
fcomi st(2)
fstp st(2)
jbe 0x437536
cmp byte [ecx + 0x456d00], 0x10
mov eax, dword [esp + 0x5c]
cmovg ebp, dword [esp + 0x4c]
cmovle eax, ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x5c], eax
setg al
test al, al
fcmovne st(0), st(3)
fstp st(3)
test al, al
fld dword [esp + 0x58]
fcmove st(0), st(1)
fstp st(1)
fstp dword [esp + 0x58]
jmp 0x43753a
fstp st(0)
fstp st(0)
jmp 0x43753a
fstp st(0)
fstp st(0)
add dword [esp + 0x38], 4
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x38], eax
jne 0x437400
fstp st(0)
fstp st(0)
fstp st(0)
cmp dword [esp + 0x4c], 0xffffffff
mov ebp, dword [esp + 0x24]
je 0x437e5d
mov ecx, dword [esp + 0x3070]
lea eax, [ecx + ecx*8]
add eax, eax
cmp ecx, 8
mov dword [esp + 0x54], eax
jg 0x437610
fld dword [esp + 0x58]
fdivrp st(1)
mov eax, dword [esp + 0x3078]
mov edx, dword [esp + 0x3060]
test eax, eax
fsqrt
fstp dword [edx]
jle 0x4375e3
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x3054]
add ebx, dword [esp + 0x5c]
cmp dword [esp + 0x54], 0xf
jle 0x437b99
mov ecx, dword [esp + 0x3078]
mov edi, 0x10
lea esi, [eax + ecx*4]
movsx ecx, byte [ebx]
mov edx, edi
add ecx, dword [esp + 0x4c]
cmp ecx, 0x10
cmovge edx, ecx
cmp dword [esp + 0x54], ecx
cmovl edx, dword [esp + 0x54]
add ebx, ebp
mov dword [eax], edx
add eax, 4
cmp eax, esi
jne 0x4375c0
movzx eax, word [esp + 0x4c]
mov ecx, dword [esp + 0x3058]
mov edx, dword [esp + 0x305c]
sub eax, 0x10
mov word [ecx], ax
movzx eax, byte [esp + 0x5c]
mov byte [edx], al
add esp, 0x303c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x4c]
add eax, eax
cmp ecx, 0xc
jne 0x43762c
movsx eax, word [esp + 0x4c]
lea edx, [eax + eax*2]
mov eax, edx
and edx, 1
sar eax, 1
add eax, edx
mov edx, dword [esp + 0x3070]
mov ecx, dword [esp + 0x54]
add edx, edx
sub ecx, 1
mov dword [esp + 0x44], edx
cmp edx, ecx
mov dword [esp + 0x30], ecx
jle 0x437c09
cmp eax, edx
mov dword [esp + 0x38], edx
jle 0x437d73
fld dword [esp + 0x58]
fdivrp st(1)
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3070]
sub eax, 2
cmp eax, dword [esp + 0x44]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x24], ecx
cmovl eax, dword [esp + 0x44]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
add eax, 2
cmp eax, dword [esp + 0x30]
fsqrt
cmovg eax, dword [esp + 0x30]
cmp dword [esp + 0x3078], 4
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3060]
fstp dword [eax]
mov eax, ecx
je 0x437df2
shl eax, 4
mov ebp, dword [esp + 0x3078]
add eax, dword [esp + 0x3050]
test ebp, ebp
mov dword [esp + 0x4c], eax
jle 0x43797c
mov dword [esp + 0x58], 0xc
mov eax, 0x456d30
mov dword [esp + 0x60], 0xc
mov dword [esp + 0x48], 0x456d2c
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x2590]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], 0
shl edx, 2
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
movsx ecx, byte [edx + eax*2 + 1]
movsx esi, byte [edx + eax*2]
mov dword [esp + 0x28], ecx
cmp esi, ecx
jg 0x437770
mov eax, dword [esp + 0x5c]
mov edx, esi
mov edi, ebx
neg edx
lea ebp, [esp + edx*4 + 0x1af0]
add eax, esi
shl eax, 2
sub edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edi
sub edi, 4
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.0043fe60
fstp dword [ebp + esi*4]
add esi, 1
cmp dword [esp + 0x28], esi
jge 0x437740
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
movsx esi, byte [ecx + edx*2]
mov edi, dword [esp + 0x58]
test edi, edi
jle 0x4377d0
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
add ebp, dword [esp + 0x58]
nop
lea esi, [esi]
movsx eax, byte [edi]
add edi, 1
sub eax, esi
fld dword [esp + eax*4 + 0x1af0]
fstp dword [edx]
fld dword [esp + eax*4 + 0x1af4]
fstp dword [edx + 4]
fld dword [esp + eax*4 + 0x1af8]
fstp dword [edx + 8]
fld dword [esp + eax*4 + 0x1afc]
fstp dword [edx + 0xc]
fld dword [esp + eax*4 + 0x1b00]
fstp dword [edx + 0x10]
add edx, 0x14
cmp edi, ebp
jne 0x437790
add dword [esp + 0x3c], 1
mov eax, dword [esp + 0x60]
add ebx, dword [esp + 0x64]
add dword [esp + 0x50], 0x2a8
mov edx, dword [esp + 0x3c]
add dword [esp + 0x40], eax
cmp dword [esp + 0x3078], edx
jg 0x43770f
cmp dword [esp + 0x3078], 4
je 0x437dbc
mov esi, dword [esp + 0x3078]
test esi, esi
jle 0x43797c
mov dword [esp + 0x50], 0xc
mov eax, 0x456d30
mov dword [esp + 0x60], 0xc
mov dword [esp + 0x40], 0x456d2c
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x1af0]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], ecx
lea ebp, [esp + 0xc0]
mov dword [esp + 0x28], 0
shl edx, 2
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
movsx eax, byte [ecx + edx*2]
add eax, dword [esp + 0x5c]
shl eax, 2
sub ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00437f60
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
fadd qword [0x456bb8]
movsx ecx, byte [eax + edx*2]
movsx edi, byte [eax + edx*2 + 1]
fst dword [esp + 0xbc]
sub edi, ecx
test edi, edi
jle 0x4378e3
mov esi, dword [esp + 0x58]
neg edi
xor eax, eax
shl edi, 2
add esi, ebx
mov esi, esi
lea edi, [edi]
fld dword [esi + eax - 4]
mov edx, ebp
fld dword [ebx + eax - 4]
sub edx, eax
sub eax, 4
fmul st(0)
fxch st(1)
cmp eax, edi
fmul st(0)
fsubp st(1)
faddp st(1)
fst dword [edx]
jne 0x4378c0
fstp st(0)
jmp 0x4378e5
fstp st(0)
mov ebx, dword [esp + 0x50]
test ebx, ebx
jle 0x437940
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
add esi, dword [esp + 0x50]
lea esi, [esi]
movsx eax, byte [ebx]
add ebx, 1
sub eax, ecx
fld dword [esp + eax*4 + 0xbc]
fstp dword [edx]
fld dword [esp + eax*4 + 0xc0]
fstp dword [edx + 4]
fld dword [esp + eax*4 + 0xc4]
fstp dword [edx + 8]
fld dword [esp + eax*4 + 0xc8]
fstp dword [edx + 0xc]
fld dword [esp + eax*4 + 0xcc]
fstp dword [edx + 0x10]
add edx, 0x14
cmp ebx, esi
jne 0x437900
add dword [esp + 0x28], 1
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
add dword [esp + 0x48], 0x2a8
mov eax, dword [esp + 0x28]
add dword [esp + 0x4c], edx
add dword [esp + 0x3c], ecx
cmp dword [esp + 0x3078], eax
jg 0x43785d
cmp dword [esp + 0x3078], 4
je 0x437d81
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x40], 0x456d30
mov edi, 0xc
mov dword [esp + 0x3c], 0xc
cmp dword [esp + 0x5c], ecx
jg 0x437dad
fild dword [esp + 0x38]
lea eax, [esp + 0x1af0]
add ecx, 1
mov ebp, dword [esp + 0x5c]
lea edx, [esp + 0x2590]
mov dword [esp + 0x48], eax
fdivr dword [0x456bc0]
mov dword [esp + 0x4c], edx
imul esi, dword [esp + 0x3078], 0x2a8
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x3078]
fld dword [0x456b94]
fld dword [0x456b98]
xor ebx, ebx
test edi, edi
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
jle 0x437aa7
lea esi, [esi]
lea edi, [edi]
test ebp, ebp
jle 0x437b80
fld st(0)
xor eax, eax
fldz
fxch st(1)
jmp 0x437a24
fxch st(1)
fadd dword [edx + eax]
fxch st(1)
fadd dword [ecx + eax]
add eax, 0x2a8
cmp eax, esi
jne 0x437a22
fldz
fld st(0)
fxch st(2)
fcomi st(2)
fstp st(2)
jbe 0x437b87
fstp st(0)
fmul st(0)
mov dword [esp + 0x6c], ebx
fdivrp st(1)
fild dword [esp + 0x6c]
fmul st(4)
fsubr dword [0x456bc4]
fmulp st(1)
fcomi st(2)
jbe 0x437a90
movsx eax, byte [ebx + 0x456c60]
add eax, dword [esp + 0x24]
cmp dword [esp + 0x30], eax
jl 0x437a94
fstp st(2)
fxch st(1)
fxch st(1)
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], eax
jmp 0x437a96
fstp st(0)
jmp 0x437a96
fstp st(0)
add ebx, 1
add edx, 0x14
add ecx, 0x14
cmp ebx, edi
jne 0x437a10
add dword [esp + 0x24], 1
mov edx, dword [esp + 0x50]
add dword [esp + 0x48], 4
add dword [esp + 0x4c], 4
cmp dword [esp + 0x24], edx
jne 0x4379f4
fstp st(0)
fstp st(0)
fstp st(0)
movzx esi, byte [esp + 0x28]
mov edx, dword [esp + 0x3078]
test edx, edx
jle 0x437b29
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3054]
add ebx, dword [esp + 0x28]
cmp dword [esp + 0x44], ecx
jg 0x437c27
mov edx, dword [esp + 0x3078]
lea edi, [eax + edx*4]
movsx ecx, byte [ebx]
mov edx, dword [esp + 0x44]
add ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x44]
cmovge edx, ecx
cmp ecx, dword [esp + 0x54]
cmovg edx, dword [esp + 0x54]
add ebx, dword [esp + 0x3c]
mov dword [eax], edx
add eax, 4
cmp eax, edi
jne 0x437b01
movzx eax, word [esp + 0x38]
mov ecx, esi
mov edx, dword [esp + 0x3058]
sub ax, word [esp + 0x44]
mov word [edx], ax
mov eax, dword [esp + 0x305c]
mov byte [eax], cl
add esp, 0x303c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x3064]
mov ebx, 0x55555556
add ecx, ecx
mov eax, ecx
sar ecx, 0x1f
imul ebx
sub edx, ecx
mov dword [esp + 0x3064], edx
jmp 0x437355
fldz
jmp 0x437a5d
fstp st(2)
fstp st(0)
jmp 0x437a5d
fstp st(0)
mov ebx, eax
jmp 0x437021
mov edx, dword [esp + 0x3078]
mov edi, 0x10
lea esi, [eax + edx*4]
movsx edx, byte [ebx]
mov ecx, dword [esp + 0x54]
add edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x54]
cmovge ecx, edx
cmp edx, 0x10
mov edx, edi
cmovle edx, ecx
add ebx, ebp
mov dword [eax], edx
add eax, 4
cmp eax, esi
jne 0x437ba8
jmp 0x4375e3
mov eax, dword [esp + 0x3074]
test eax, eax
jle 0x437d59
cmp dword [esp + 0x3070], 8
jne 0x437d59
mov dword [esp + 0x30], 0x456d00
mov ebp, 0xb
mov dword [esp + 0x28], 0xb
jmp 0x43738f
cmp eax, ecx
mov dword [esp + 0x38], ecx
jg 0x437658
cmp eax, dword [esp + 0x44]
cmovl eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
jmp 0x437658
mov ecx, dword [esp + 0x3078]
lea edi, [eax + ecx*4]
movsx ecx, byte [ebx]
mov edx, dword [esp + 0x54]
add ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x54]
cmovge edx, ecx
cmp dword [esp + 0x44], ecx
cmovl edx, dword [esp + 0x44]
add ebx, dword [esp + 0x3c]
mov dword [eax], edx
add eax, 4
cmp eax, edi
jne 0x437c31
jmp 0x437b29
fstp st(0)
mov eax, dword [esp + 0x3078]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3054]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x3060]
mov eax, dword [esp + 0x305c]
mov ecx, dword [esp + 0x3058]
mov dword [edx], 0
mov word [ecx], 0
mov byte [eax], 0
add esp, 0x303c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [esp + 0xca0]
mov eax, esi
sub eax, 1
js 0x437d02
mov edi, 0xffff8000
mov edx, dword [esp + 0x3050]
mov ecx, edi
fld dword [edx + eax*4]
fistp dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, 0xffff8000
cmovge ecx, edx
cmp edx, 0x7fff
mov edx, 0x7fff
cmovg ecx, edx
mov word [ebx + eax*2], cx
sub eax, 1
cmp eax, 0xffffffff
jne 0x437ccb
lea edi, [esp + 0x78]
xor eax, eax
mov dword [edi + eax], 0
add eax, 4
cmp eax, 0x18
jb 0x437d08
mov dword [esp + 0xc], esi
lea esi, [esp + 0x520]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00440160
mov eax, ebp
add eax, 0x9f
js 0x436dbb
lea edx, [esp + 0x7a0]
fild word [esi + eax*2]
fstp dword [edx + eax*4]
sub eax, 1
cmp eax, 0xffffffff
jne 0x437d46
jmp 0x436dbb
mov dword [esp + 0x30], 0x456d00
mov ebp, 0xb
mov dword [esp + 0x28], 3
jmp 0x43738f
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x38], eax
jmp 0x437658
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x40], 0x456c60
mov edx, dword [esp + 0x3074]
mov dword [esp + 0x3c], 0x22
cmp dword [esp + 0x5c], ecx
movsx edi, byte [edx + 0x456c40]
jle 0x43799f
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x437acf
mov eax, dword [esp + 0x3074]
mov dword [esp + 0x60], 0x22
mov ecx, dword [esp + 0x3074]
movsx eax, byte [eax + 0x456c40]
lea ecx, [ecx*8 + 0x456c43]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], eax
mov eax, 0x456c60
jmp 0x437834
mov ecx, dword [esp + 0x3074]
shl eax, 4
mov dword [esp + 0x60], 0x22
mov edx, dword [esp + 0x3074]
add eax, dword [esp + 0x3050]
movsx ecx, byte [ecx + 0x456c40]
lea edx, [edx*8 + 0x456c43]
mov dword [esp + 0x4c], eax
mov eax, 0x456c60
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], ecx
jmp 0x4376e9
lea ebx, [esp + 0xca0]
lea edi, [esp + 0x78]
lea esi, [esp + 0x520]
jmp 0x436dbb
lea eax, [esp + 0x2a0]
mov dword [esp + 0x38], eax
jmp 0x436e42
fstp st(0)
mov edx, dword [esp + 0x3054]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov ecx, dword [esp + 0x3060]
mov eax, dword [esp + 0x3058]
mov edx, dword [esp + 0x305c]
mov dword [ecx], 0
mov word [eax], 0
mov eax, 1
mov byte [edx], 0
add esp, 0x303c
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [esp + 0xca0]
mov ecx, esi
sub ecx, 1
js 0x437efc
mov edi, 0xffff8000
mov eax, dword [esp + 0x3050]
mov edx, edi
fld dword [eax + ecx*4]
fistp dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
cmp eax, 0xffff8000
cmovge edx, eax
cmp eax, 0x7fff
mov eax, 0x7fff
cmovle eax, edx
mov word [ebx + ecx*2], ax
sub ecx, 1
cmp ecx, 0xffffffff
jne 0x437ec7
mov dword [esp + 0xc], esi
lea edi, [esp + 0x78]
lea esi, [esp + 0x520]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
call fcn.0043fed0
mov eax, ebp
add eax, 0x9f
js 0x436dbb
lea edx, [esp + 0x7a0]
fild word [esi + eax*2]
fstp dword [edx + eax*4]
sub eax, 1
cmp eax, 0xffffffff
jne 0x437f3f
jmp 0x436dbb