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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
push edi
xor edi, edi
cmp eax, edi
mov dword [esp + 0x24], esi
je 0x437712
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x479620]
call fcn.0041b050
xor edx, edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], 0xffffffff
mov dword [esp + 0x14], edx
lea esp, [esp]
mov eax, dword [esi + edx*4 + 0x3c]
mov ecx, dword [eax]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], ecx
mov dword [esp + edx*4 + 0x90], edi
mov ebx, dword [eax + 4]
cmp ecx, ebx
jg 0x4382bd
mov ebp, ecx
sub ebp, dword [eax]
mov eax, dword [eax + 8]
lea eax, [eax + ebp*4]
lea ebx, [ebx]
cmp dword [eax], edi
jne 0x43777c
inc ecx
add eax, 4
cmp ecx, ebx
jle 0x437770
cmp ecx, ebx
mov dword [esp + 0x30], ecx
jg 0x4382bd
lea edi, [ecx + 1]
lea eax, [ecx + 4]
cmp edi, eax
mov esi, ecx
jge 0x4377d6
mov ecx, dword [esp + 0x18]
cmp edi, ebx
jg 0x4377d6
mov edx, dword [ecx]
mov ebp, dword [ecx + 8]
mov eax, edi
sub eax, edx
shl eax, 2
cmp dword [eax + ebp], 0
je 0x4377ca
mov ecx, ebp
mov ebp, esi
sub ebp, edx
mov edx, dword [ecx + ebp*4]
mov ecx, dword [ecx + eax]
push edx
call fcn.00435710
test eax, eax
mov ecx, dword [esp + 0x18]
jge 0x4377ca
mov esi, edi
mov eax, dword [esp + 0x30]
inc edi
add eax, 4
cmp edi, eax
jl 0x437798
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
mov eax, dword [eax + 8]
sub esi, ebx
lea eax, [eax + esi*4]
mov esi, dword [eax]
mov ecx, dword [esi + 0x5c]
mov dword [eax], ecx
push 0x60
mov dword [esi + 0x5c], 0
call fcn.0043f7ed
add esp, 4
test eax, eax
je 0x437813
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov ecx, eax
call fcn.004363f0
jmp 0x437815
xor eax, eax
push esi
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00436470
fld qword [esi + 0x50]
fstp qword [esp + 0x28]
fld qword [esi + 0x28]
fst qword [esp + 0x40]
fstp qword [esp + 0x48]
fld qword [esp + 0x28]
fmul qword [0x458098]
fstp qword [esp + 0x70]
fld qword [esp + 0x28]
fmul qword [0x458068]
fstp qword [esp + 0x88]
fld qword [esp + 0x28]
fmul qword [0x452880]
fstp qword [esp + 0x58]
fld qword [esp + 0x88]
fmul qword [0x4571f0]
fstp qword [esp + 0x80]
fld qword [esp + 0x58]
fmul qword [0x4571f0]
fstp qword [esp + 0x78]
jmp 0x437890
fld qword [esp + 0x48]
mov dword [esp + 0x20], 0
fstp qword [esp + 0x50]
fld qword [esp + 0x48]
fmul qword [0x4571f0]
call fcn.0043f7fc
mov ebp, dword [esp + 0x18]
mov ecx, dword [ebp]
cmp eax, ecx
jge 0x4378c0
mov dword [esp + 0x10], ecx
jmp 0x4378cf
mov ecx, dword [ebp + 4]
cmp eax, ecx
mov dword [esp + 0x10], ecx
jg 0x4378cf
mov dword [esp + 0x10], eax
fld qword [esp + 0x48]
fsub qword [esp + 0x88]
fst qword [esp + 0x60]
fmul qword [0x4571f0]
call fcn.0043f7fc
mov edx, dword [esp + 0x1c]
mov edi, eax
mov dword [esp + 0x34], edi
mov eax, dword [ebp]
cmp edi, eax
jge 0x4378fe
mov ecx, eax
jmp 0x437907
mov ecx, dword [ebp + 4]
cmp edi, ecx
jg 0x437907
mov ecx, edi
mov esi, dword [esp + 0x10]
cmp esi, ecx
jl 0x437a01
mov ecx, esi
sub ecx, eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + ecx*4]
xor ebx, ebx
test esi, esi
je 0x43796f
mov ecx, dword [esp + 0x14]
fld qword [esi + 0x28]
fcomp qword [esp + 0x48]
fnstsw ax
test ah, 5
jp 0x437966
fld qword [esi + 0x28]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
jne 0x437966
test ecx, ecx
je 0x437978
cmp ecx, 2
je 0x437978
fld qword [esi + 0x18]
fcomp qword [edx + 0x20]
fnstsw ax
test ah, 5
jp 0x437966
fld qword [esi + 0x20]
fcomp qword [edx + 0x18]
fnstsw ax
test ah, 0x41
je 0x437992
mov ebx, esi
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x437927
dec dword [esp + 0x10]
jmp 0x4378f3
fld qword [esi + 8]
fcomp qword [edx + 0x10]
fnstsw ax
test ah, 5
jp 0x437966
fld qword [esi + 0x10]
fcomp qword [edx + 8]
fnstsw ax
test ah, 0x41
jne 0x437966
fld qword [esi + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458050]
fcompp
fnstsw ax
test ah, 0x41
jne 0x437966
test ebx, ebx
mov edi, esi
lea eax, [esi + 0x5c]
je 0x4379be
mov ecx, dword [eax]
mov dword [ebx + 0x5c], ecx
jmp 0x4379cf
mov ecx, dword [ebp]
mov edx, dword [esp + 0x10]
mov esi, dword [eax]
sub edx, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4], esi
mov esi, dword [eax]
mov ecx, dword [esp + 0x1c]
push edi
mov dword [eax], 0
call fcn.00436470
fld qword [edi + 0x28]
mov edx, dword [esp + 0x1c]
fstp qword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], 1
jmp 0x43796b
fld qword [esp + 0x50]
fstp qword [esp + 0x48]
fld qword [esp + 0x40]
fstp qword [esp + 0x60]
fld qword [esp + 0x40]
fmul qword [0x4571f0]
fld st(0)
call fcn.0043f7fc
mov ecx, dword [ebp]
cmp eax, ecx
jge 0x437a2d
mov ebp, ecx
jmp 0x437a38
mov ecx, dword [ebp + 4]
cmp eax, ecx
mov ebp, ecx
jg 0x437a38
mov ebp, eax
fld qword [esp + 0x80]
fadd st(1)
call fcn.0043f7fc
fstp st(0)
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x34], esi
mov eax, dword [edi]
cmp esi, eax
jge 0x437a60
mov ecx, eax
jmp 0x437a69
mov ecx, dword [edi + 4]
cmp esi, ecx
jg 0x437a69
mov ecx, esi
cmp ebp, ecx
jg 0x437b64
mov ecx, ebp
sub ecx, eax
mov eax, dword [edi + 8]
mov esi, dword [eax + ecx*4]
xor ebx, ebx
test esi, esi
je 0x437ad4
fld qword [esi + 0x28]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x437acb
fld qword [esp + 0x88]
fadd qword [esp + 0x40]
fcomp qword [esi + 0x28]
fnstsw ax
test ah, 1
jne 0x437acb
mov eax, dword [esp + 0x14]
test eax, eax
je 0x437ade
cmp eax, 2
je 0x437ade
fld qword [esi + 0x18]
fcomp qword [edx + 0x20]
fnstsw ax
test ah, 5
jp 0x437acb
fld qword [esi + 0x20]
fcomp qword [edx + 0x18]
fnstsw ax
test ah, 0x41
je 0x437af8
mov ebx, esi
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x437a81
mov esi, dword [esp + 0x34]
inc ebp
jmp 0x437a56
fld qword [esi + 8]
fcomp qword [edx + 0x10]
fnstsw ax
test ah, 5
jp 0x437acb
fld qword [esi + 0x10]
fcomp qword [edx + 8]
fnstsw ax
test ah, 0x41
jne 0x437acb
fld qword [esi + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458050]
fcompp
fnstsw ax
test ah, 0x41
jne 0x437acb
test ebx, ebx
mov edi, esi
lea eax, [esi + 0x5c]
je 0x437b24
mov ecx, dword [eax]
mov dword [ebx + 0x5c], ecx
jmp 0x437b36
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx]
mov ecx, dword [ecx + 8]
mov edx, ebp
sub edx, esi
mov esi, dword [eax]
mov dword [ecx + edx*4], esi
mov esi, dword [eax]
mov ecx, dword [esp + 0x1c]
push edi
mov dword [eax], 0
call fcn.00436470
fld qword [edi + 0x28]
mov edi, dword [esp + 0x18]
fstp qword [esp + 0x60]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], 1
jmp 0x437ad0
fld qword [esp + 0x60]
fstp qword [esp + 0x40]
fld qword [esp + 0x50]
fsub qword [esp + 0x58]
fst qword [esp + 0x50]
fmul qword [0x4571f0]
call fcn.0043f7fc
mov ebx, eax
mov eax, dword [edi]
cmp ebx, eax
mov dword [esp + 0x34], ebx
jl 0x437b96
mov eax, dword [edi + 4]
cmp ebx, eax
jle 0x437b98
mov ebx, eax
fld qword [esp + 0x60]
fmul qword [0x4571f0]
fadd qword [esp + 0x78]
call fcn.0043f7fc
mov ebp, eax
mov dword [esp + 0x10], ebp
mov eax, dword [edi]
cmp ebp, eax
jge 0x437bbb
mov ecx, eax
jmp 0x437bc4
mov ecx, dword [edi + 4]
cmp ebp, ecx
jg 0x437bc4
mov ecx, ebp
cmp ebx, ecx
jg 0x437cda
mov ebp, dword [esp + 0x18]
mov edx, ebx
sub edx, eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + edx*4]
xor edi, edi
test esi, esi
je 0x437c44
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x437bf0
fld qword [esi + 0x28]
fcomp qword [esp + 0x50]
fnstsw ax
test ah, 1
jne 0x437c3b
fld qword [esp + 0x60]
fadd qword [esp + 0x58]
fcomp qword [esi + 0x28]
fnstsw ax
test ah, 1
jne 0x437c3b
test edx, edx
je 0x437c52
cmp edx, 2
je 0x437c52
fld qword [esp + 0x70]
fadd qword [ecx + 0x20]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 0x41
jne 0x437c3b
fld qword [ecx + 0x18]
fsub qword [esp + 0x70]
fcomp qword [esi + 0x20]
fnstsw ax
test ah, 5
jnp 0x437c74
mov edi, esi
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x437bf0
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
inc ebx
jmp 0x437bb1
fld qword [esp + 0x70]
fadd qword [ecx + 0x10]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x437c3b
fld qword [ecx + 8]
fsub qword [esp + 0x70]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 5
jp 0x437c3b
fld qword [esi + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458090]
fcompp
fnstsw ax
test ah, 0x41
jne 0x437c3b
test edi, edi
mov ecx, esi
lea eax, [esi + 0x5c]
je 0x437ca0
mov edx, dword [eax]
mov dword [edi + 0x5c], edx
jmp 0x437cb3
mov esi, dword [ebp]
mov edx, ebx
sub edx, esi
mov esi, dword [ebp + 8]
mov ebp, dword [eax]
mov dword [esi + edx*4], ebp
mov ebp, dword [esp + 0x18]
mov esi, dword [eax]
push ecx
mov ecx, dword [esp + 0x20]
mov dword [eax], 0
call fcn.00436470
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], 1
jmp 0x437c40
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x437890
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, dword [esp + 0x34]
cmp ecx, esi
mov dword [esp + 0x10], 0
jge 0x437d00
mov edi, esi
jmp 0x437d0b
mov eax, dword [eax + 4]
cmp ecx, eax
mov edi, eax
jg 0x437d0b
mov edi, ecx
mov ebx, dword [esp + 0x1c]
mov edx, edi
sub edx, esi
shl edx, 2
cmp ebp, esi
jge 0x437d1e
mov eax, esi
jmp 0x437d2b
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp ebp, eax
jg 0x437d2b
mov eax, ebp
cmp edi, eax
jg 0x437df5
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [edx + eax]
test ecx, ecx
je 0x437de8
fld qword [ecx + 0x28]
fcomp qword [esp + 0x50]
fnstsw ax
test ah, 1
jne 0x437dcc
fld qword [esp + 0x60]
fadd qword [esp + 0x58]
fcomp qword [ecx + 0x28]
fnstsw ax
test ah, 1
jne 0x437dcc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x437d92
cmp eax, 2
je 0x437d92
fld qword [ecx + 0x20]
fcomp qword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x437dcc
fld qword [ebx + 0x18]
fsub qword [esp + 0x28]
fcomp qword [ecx + 0x20]
fnstsw ax
test ah, 5
jnp 0x437db0
jmp 0x437dcc
fld qword [ecx + 0x10]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x41
jp 0x437dcc
fld qword [ebx + 8]
fsub qword [esp + 0x28]
fcomp qword [ecx + 0x10]
fnstsw ax
test ah, 5
jp 0x437dcc
fld qword [ecx + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458078]
fcompp
fnstsw ax
test ah, 0x41
je 0x437de4
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
jne 0x437d45
mov ecx, dword [esp + 0x34]
inc edi
add edx, 4
jmp 0x437d16
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
inc edi
add edx, 4
jmp 0x437d16
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x437f7f
cmp eax, 3
jg 0x437f7f
cmp ecx, esi
jge 0x437e12
mov edi, esi
jmp 0x437e21
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
cmp ecx, eax
mov edi, eax
jg 0x437e21
mov edi, ecx
mov ebp, dword [esp + 0x18]
jmp 0x437e30
fld qword [esp + 0x40]
fmul qword [0x4571f0]
fadd qword [esp + 0x78]
call fcn.0043f7fc
mov ecx, dword [ebp]
cmp eax, ecx
jge 0x437e4e
mov eax, ecx
jmp 0x437e57
mov edx, dword [ebp + 4]
cmp eax, edx
jle 0x437e57
mov eax, edx
cmp edi, eax
jg 0x437f83
mov eax, edi
sub eax, ecx
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
xor edx, edx
test esi, esi
je 0x437f79
fld qword [esp + 0x48]
fsub qword [esp + 0x58]
fstp qword [esp + 0x50]
fld qword [esi + 0x28]
fcomp qword [esp + 0x50]
fnstsw ax
test ah, 1
jne 0x437f09
fld qword [esp + 0x58]
fadd qword [esp + 0x40]
fcomp qword [esi + 0x28]
fnstsw ax
test ah, 1
jne 0x437f09
mov eax, dword [esp + 0x14]
test eax, eax
je 0x437ecf
cmp eax, 2
je 0x437ecf
fld qword [esi + 0x20]
fcomp qword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x437f09
fld qword [ebx + 0x18]
fsub qword [esp + 0x28]
fcomp qword [esi + 0x20]
fnstsw ax
test ah, 5
jnp 0x437eed
jmp 0x437f09
fld qword [esi + 0x10]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x41
jp 0x437f09
fld qword [ebx + 8]
fsub qword [esp + 0x28]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 5
jp 0x437f09
fld qword [esi + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458078]
fcompp
fnstsw ax
test ah, 0x41
je 0x437f1c
mov edx, esi
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x437e82
inc edi
jmp 0x437e30
test edx, edx
je 0x437f28
mov eax, dword [esi + 0x5c]
mov dword [edx + 0x5c], eax
jmp 0x437f2d
mov edx, dword [esi + 0x5c]
mov dword [ecx], edx
push esi
mov ecx, ebx
mov dword [esi + 0x5c], 0
call fcn.00436470
fld qword [esi + 0x28]
fcomp qword [esp + 0x48]
fld qword [esi + 0x28]
fnstsw ax
test ah, 5
jp 0x437f5f
fstp qword [esp + 0x48]
mov dword [esp + 0x20], 1
inc edi
jmp 0x437e30
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x437f71
fld qword [esi + 0x28]
fstp qword [esp + 0x40]
mov dword [esp + 0x20], 1
inc edi
jmp 0x437e30
mov ebp, dword [esp + 0x18]
fld qword [esp + 0x48]
mov dword [esp + 0x10], 0
fsub qword [esp + 0x58]
fld qword [0x4571f0]
fmul st(1)
call fcn.0043f7fc
mov esi, dword [ebp]
mov edi, eax
cmp edi, esi
mov dword [esp + 0x34], edi
jge 0x437fb1
mov edi, esi
jmp 0x437fba
mov eax, dword [ebp + 4]
cmp edi, eax
jle 0x437fba
mov edi, eax
fld qword [esp + 0x40]
fmul qword [0x4571f0]
fadd qword [esp + 0x78]
call fcn.0043f7fc
mov ebp, dword [esp + 0x1c]
mov edx, edi
sub edx, esi
mov ebx, eax
shl edx, 2
lea ebx, [ebx]
cmp ebx, esi
jge 0x437fe8
mov eax, esi
jmp 0x437ff5
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp ebx, eax
jg 0x437ff5
mov eax, ebx
cmp edi, eax
jg 0x4380b4
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [edx + eax]
test ecx, ecx
je 0x4380ab
nop
fcom qword [ecx + 0x28]
fnstsw ax
test ah, 0x41
jp 0x438093
fld qword [esp + 0x58]
fadd qword [esp + 0x40]
fcomp qword [ecx + 0x28]
fnstsw ax
test ah, 1
jne 0x438093
mov eax, dword [esp + 0x14]
test eax, eax
je 0x438059
cmp eax, 2
je 0x438059
fld qword [ecx + 0x18]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 1
jne 0x438093
fld qword [esp + 0x28]
fadd qword [ebp + 0x20]
fcomp qword [ecx + 0x18]
fnstsw ax
test ah, 0x41
je 0x438077
jmp 0x438093
fld qword [ecx + 8]
fcomp qword [ebp + 0x10]
fnstsw ax
test ah, 1
jne 0x438093
fld qword [esp + 0x28]
fadd qword [ebp + 0x10]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x438093
fld qword [ecx + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458078]
fcompp
fnstsw ax
test ah, 0x41
je 0x4380a7
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
jne 0x438010
inc edi
add edx, 4
jmp 0x437fe0
inc dword [esp + 0x10]
inc edi
add edx, 4
jmp 0x437fe0
mov eax, dword [esp + 0x10]
fstp st(0)
test eax, eax
jle 0x43823e
cmp eax, 3
jg 0x43823e
mov edi, dword [esp + 0x34]
cmp edi, esi
jge 0x4380d7
mov edi, esi
jmp 0x4380e4
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
cmp edi, eax
jle 0x4380e4
mov edi, eax
mov ebx, dword [esp + 0x18]
jmp 0x4380f0
fld qword [esp + 0x40]
fmul qword [0x4571f0]
fadd qword [esp + 0x78]
call fcn.0043f7fc
mov ecx, dword [ebx]
cmp eax, ecx
jge 0x43810d
mov eax, ecx
jmp 0x438116
mov edx, dword [ebx + 4]
cmp eax, edx
jle 0x438116
mov eax, edx
cmp edi, eax
jg 0x43823e
mov eax, edi
sub eax, ecx
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
xor edx, edx
test esi, esi
je 0x438238
fld qword [esp + 0x48]
fsub qword [esp + 0x58]
fstp qword [esp + 0x50]
fld qword [esi + 0x28]
fcomp qword [esp + 0x50]
fnstsw ax
test ah, 1
jne 0x4381c8
fld qword [esp + 0x58]
fadd qword [esp + 0x40]
fcomp qword [esi + 0x28]
fnstsw ax
test ah, 1
jne 0x4381c8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x43818e
cmp eax, 2
je 0x43818e
fld qword [esi + 0x18]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 1
jne 0x4381c8
fld qword [esp + 0x28]
fadd qword [ebp + 0x20]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 0x41
je 0x4381ac
jmp 0x4381c8
fld qword [esi + 8]
fcomp qword [ebp + 0x10]
fnstsw ax
test ah, 1
jne 0x4381c8
fld qword [esp + 0x28]
fadd qword [ebp + 0x10]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x4381c8
fld qword [esi + 0x50]
fsub qword [esp + 0x28]
fabs
fld qword [esp + 0x28]
fmul qword [0x458078]
fcompp
fnstsw ax
test ah, 0x41
je 0x4381db
mov edx, esi
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x438141
inc edi
jmp 0x4380f0
test edx, edx
je 0x4381e7
mov eax, dword [esi + 0x5c]
mov dword [edx + 0x5c], eax
jmp 0x4381ec
mov edx, dword [esi + 0x5c]
mov dword [ecx], edx
push esi
mov ecx, ebp
mov dword [esi + 0x5c], 0
call fcn.00436470
fld qword [esi + 0x28]
fcomp qword [esp + 0x48]
fld qword [esi + 0x28]
fnstsw ax
test ah, 5
jp 0x43821e
fstp qword [esp + 0x48]
mov dword [esp + 0x20], 1
inc edi
jmp 0x4380f0
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x438230
fld qword [esi + 0x28]
fstp qword [esp + 0x40]
mov dword [esp + 0x20], 1
inc edi
jmp 0x4380f0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x437890
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.00436500
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x438267
mov dword [eax + 0x54], esi
jmp 0x43826b
mov dword [esp + 0x38], esi
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + edx*4 + 0x90]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x58]
add ebx, ecx
test eax, eax
mov dword [esp + edx*4 + 0x90], ebx
mov ecx, ebx
jl 0x43829c
cmp ecx, dword [esp + eax*4 + 0x90]
jle 0x43829f
mov dword [esi + 0x58], edx
mov eax, dword [esi + 0x54]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esi + 0x54], eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
xor edi, edi
jmp 0x437755
inc edx
cmp edx, 4
mov dword [esp + 0x14], edx
jl 0x437740
mov eax, dword [esp + 0x38]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x1c], eax
je 0x43834f
lea esp, [esp]
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
je 0x438340
jmp 0x4382f0
mov esi, dword [ebx + 0x30]
test esi, esi
je 0x438339
mov eax, dword [esi + 0x38]
xor edi, edi
test eax, eax
jle 0x438332
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edi*4]
push ecx
call fcn.0043a260
add esp, 4
test eax, eax
je 0x438316
inc ebp
jmp 0x43832a
mov edx, dword [esi + 0x30]
mov eax, dword [edx + edi*4]
push eax
call fcn.0043a2a0
add esp, 4
test eax, eax
je 0x43832a
dec ebp
mov eax, dword [esi + 0x38]
inc edi
cmp edi, eax
jl 0x438300
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x4382f7
mov ebx, dword [ebx + 0x50]
test ebx, ebx
jne 0x4382f0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x54]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4382e0
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x54]
xor edx, edx
test ebp, ebp
setge dl
shl eax, 2
push eax
mov dword [esi + 0x5c], edx
call fcn.0043e620
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x3c]
add esp, 4
test eax, eax
je 0x438390
xor ecx, ecx
lea esp, [esp]
mov edx, dword [esi + 0x50]
mov dword [ecx + edx], eax
mov eax, dword [eax + 0x54]
add ecx, 4
test eax, eax
jne 0x438380
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
push 0x436f40
push 4
push eax
push ecx
call fcn.004408b0
mov eax, dword [esi + 0x54]
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], 0
jle 0x43851f
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + 0x50]
mov edi, dword [ecx + eax]
xor ebp, ebp
test ecx, ecx
jle 0x4384c7
mov edx, dword [edx + 0x58]
mov ebx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], eax
jmp 0x4383f1
mov edx, dword [esp + 0x30]
mov esi, dword [ebx]
xor eax, eax
cmp edx, 3
ja case.default.0x4383fe
jmp dword [edx*4 + 0x4388b4]
fld qword [edi + 8]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 0x41
jne 0x438421
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
lea eax, [ecx + edx + 3]
jmp case.default.0x4383fe
fld qword [edi + 8]
fsub qword [esi + 8]
fld qword [esi + 0x10]
fsub qword [esi + 8]
jmp 0x4384a2
fld qword [edi + 0x18]
fcomp qword [esi + 0x20]
fnstsw ax
test ah, 0x41
jne 0x438448
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + ecx + 3]
jmp case.default.0x4383fe
fld qword [edi + 0x18]
fsub qword [esi + 0x18]
fld qword [esi + 0x20]
fsub qword [esi + 0x18]
jmp 0x4384a2
fld qword [edi + 0x10]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x43846f
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
lea eax, [edx + eax + 3]
jmp case.default.0x4383fe
fld qword [edi + 0x10]
fsub qword [esi + 0x10]
fld qword [esi + 8]
fsub qword [esi + 0x10]
jmp 0x4384a2
fld qword [edi + 0x20]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 5
jp 0x438496
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
lea eax, [ecx + edx + 3]
jmp case.default.0x4383fe
fld qword [edi + 0x20]
fsub qword [esi + 0x20]
fld qword [esi + 0x18]
fsub qword [esi + 0x20]
fdivp st(1)
fimul dword [esi + 0x50]
call fcn.0043f7fc
add eax, dword [esi + 0x4c]
cmp eax, ebp
jle 0x4384b5
mov ebp, eax
mov eax, dword [esp + 0x3c]
add ebx, 4
dec eax
mov dword [esp + 0x3c], eax
jne 0x4383ed
mov eax, dword [edi + 0x3c]
test eax, eax
mov dword [edi + 0x4c], ebp
je 0x4384fc
mov edx, dword [eax + 0x44]
xor ecx, ecx
test edx, edx
jl 0x4384f5
lea ebx, [ebx]
mov edx, dword [eax + 0x40]
mov edi, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
add edi, ebp
mov dword [edx], edi
mov edx, dword [eax + 0x44]
inc ecx
cmp ecx, edx
jle 0x4384e0
mov eax, dword [eax + 0x50]
test eax, eax
jne 0x4384d1
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x54]
inc eax
add esi, 4
cmp eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], esi
jl 0x4383c2
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x50]
push 0x437020
push 4
push edx
push eax
call fcn.004408b0
mov eax, dword [ebx + 0x54]
xor ebp, ebp
add esp, 0x10
xor edi, edi
cmp eax, ebp
jle 0x438574
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
mov ecx, dword [ecx + edi*4]
xor esi, esi
cmp eax, ebp
jle 0x43856c
mov edx, dword [ebx + 0x50]
mov eax, dword [edx + esi*4]
cmp eax, ecx
je 0x438564
push eax
call fcn.00436df0
mov eax, dword [ebx + 0x54]
inc esi
cmp esi, eax
jl 0x438554
mov eax, dword [ebx + 0x54]
inc edi
cmp edi, eax
jl 0x438545
mov eax, dword [ebx + 0x54]
shl eax, 2
push eax
call fcn.0043e620
mov ecx, dword [ebx + 0x54]
mov esi, dword [ebx + 0x50]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x54]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x38], ebp
mov dword [ebx + 0x4c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], eax
jle 0x43888f
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x3c]
cmp dword [ecx], 0
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
jne 0x4385e0
mov eax, dword [ebp + ebx*4 + 4]
inc ebx
test eax, eax
je 0x4385d3
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x24]
mov esi, dword [ebp + ebx*4]
lea eax, [ebp + ebx*4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x54]
inc ebx
cmp ebx, eax
jge 0x438664
lea esp, [esp]
mov edi, dword [ebp + ebx*4]
test edi, edi
je 0x438658
test esi, esi
je case.default.0x438614
mov eax, dword [esi + 4]
cmp eax, 3
ja case.default.0x438614
jmp dword [eax*4 + 0x4388c4]
fld qword [edi + 0x18]
fsub qword [esi + 0x20]
jmp 0x438639
fld qword [esi + 8]
fsub qword [edi + 0x10]
jmp 0x438639
fld qword [esi + 0x18]
fsub qword [edi + 0x20]
jmp 0x438639
fld qword [edi + 8]
fsub qword [esi + 0x10]
fcomp qword [0x450118]
fnstsw ax
test ah, 0x41
je 0x438664
push esi
mov ecx, edi
call fcn.00435ab0
test eax, eax
jge 0x438658
mov dword [esp + 0x14], ebx
mov esi, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
inc ebx
cmp ebx, ecx
jl 0x438600
mov ecx, dword [esp + 0x14]
xor edi, edi
mov dword [ebp + ecx*4], edi
mov ebp, dword [esp + 0x10]
dec ebp
push 0x48
mov dword [esp + 0x14], ebp
mov dword [esi + 0x54], edi
call fcn.0043f7ed
add esp, 4
cmp eax, edi
je 0x4386bd
mov edx, dword [esp + 0x24]
mov dword [eax], edx
fld qword [esi + 8]
fstp qword [eax + 8]
fld qword [esi + 0x10]
fstp qword [eax + 0x10]
fld qword [esi + 0x18]
fstp qword [eax + 0x18]
fld qword [esi + 0x20]
fstp qword [eax + 0x20]
fld qword [esi + 0x28]
fstp qword [eax + 0x28]
fld qword [esi + 0x30]
mov dword [eax + 0x3c], esi
fstp qword [eax + 0x30]
mov dword [eax + 0x38], esi
mov dword [eax + 0x40], edi
jmp 0x4386bf
xor eax, eax
mov ecx, dword [esp + 0x38]
cmp ecx, edi
mov dword [esp + 0x34], eax
je 0x4386d0
mov dword [ecx + 0x40], eax
jmp 0x4386d7
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x4c], eax
mov dword [esp + 0x38], eax
mov dword [esi + 0x58], edi
mov ebx, esi
mov edx, dword [ebx + 0x3c]
mov eax, dword [edx + 0x30]
fld qword [eax + 0x50]
mov ecx, dword [esp + 0x24]
fmul qword [0x458088]
mov ebp, dword [esp + 0x30]
mov eax, dword [ecx + 0x54]
xor esi, esi
cmp ebp, eax
fstp qword [esp + 0x80]
mov dword [esp + 0x14], 0xffffffff
jge 0x438878
mov edx, dword [esp + 0x20]
mov edi, dword [edx + ebp*4]
test edi, edi
je 0x4387c9
mov eax, dword [ebx + 4]
fld qword [0x450118]
cmp eax, 3
ja case.default.0x438730
jmp dword [eax*4 + 0x4388d4]
fstp st(0)
fld qword [edi + 0x18]
fsub qword [ebx + 0x20]
jmp case.default.0x438730
fstp st(0)
fld qword [ebx + 8]
fsub qword [edi + 0x10]
jmp case.default.0x438730
fstp st(0)
fld qword [ebx + 0x18]
fsub qword [edi + 0x20]
jmp case.default.0x438730
fstp st(0)
fld qword [edi + 8]
fsub qword [ebx + 0x10]
fcomp qword [esp + 0x80]
fnstsw ax
test ah, 0x41
je 0x4387d9
test esi, esi
je case.default.0x438777
mov eax, dword [esi + 4]
cmp eax, 3
ja case.default.0x438777
jmp dword [eax*4 + 0x4388e4]
fld qword [edi + 0x18]
fsub qword [esi + 0x20]
jmp 0x43879c
fld qword [esi + 8]
fsub qword [edi + 0x10]
jmp 0x43879c
fld qword [esi + 0x18]
fsub qword [edi + 0x20]
jmp 0x43879c
fld qword [edi + 8]
fsub qword [esi + 0x10]
fcomp qword [0x450118]
fnstsw ax
test ah, 0x41
je 0x4387d9
push ebx
mov ecx, edi
call fcn.00437100
test eax, eax
je 0x4387c9
test esi, esi
je 0x4387c3
push esi
call fcn.00435ab0
test eax, eax
jge 0x4387c9
mov dword [esp + 0x14], ebp
mov esi, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
inc ebp
cmp ebp, ecx
jl 0x438713
test esi, esi
je 0x438878
mov ecx, dword [esp + 0x34]
push ebx
push esi
call fcn.004371f0
test eax, eax
je 0x438878
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov dword [edx + eax*4], 0
mov dword [esi + 0x54], 0
mov eax, dword [ecx + 0x3c]
dec edi
test eax, eax
mov dword [esp + 0x10], edi
je 0x43881f
mov dword [eax + 0x54], esi
jmp 0x438822
mov dword [ecx + 0x38], esi
mov dword [ecx + 0x3c], esi
fld qword [esi + 8]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x438838
fld qword [esi + 8]
fstp qword [ecx + 8]
fld qword [esi + 0x10]
fcomp qword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x43884b
fld qword [esi + 0x10]
fstp qword [ecx + 0x10]
fld qword [esi + 0x18]
fcomp qword [ecx + 0x18]
fnstsw ax
test ah, 5
jp 0x43885e
fld qword [esi + 0x18]
fstp qword [ecx + 0x18]
fld qword [esi + 0x20]
fcomp qword [ecx + 0x20]
fnstsw ax
test ah, 0x41
jne 0x438871
fld qword [esi + 0x20]
fstp qword [ecx + 0x20]
mov dword [esi + 0x58], ebx
mov ebx, esi
jmp 0x43887b
mov ebx, dword [ebx + 0x58]
test ebx, ebx
jne 0x4386e0
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x4385c2
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0043e6b0
mov ecx, dword [esp + 0x70]
add esp, 4
test ecx, ecx
je 0x4388a9
call fcn.0043a060
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 4