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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov ebp, ecx
mov eax, dword [ebp + 0x29f4]
mov edx, dword [eax + 0x38]
lea esi, [ebp + 0x29f4]
mov ecx, esi
call edx
test al, al
je 0x437be4
fld dword [ebp + 0x1c74]
fsub qword [0x6a1498]
jmp 0x437c00
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
call edx
test al, al
jne 0x437c06
mov eax, dword [esi]
mov edx, dword [eax + 0x3c]
mov ecx, esi
call edx
test al, al
jne 0x437c06
fldz
fstp dword [ebp + 0x1c74]
mov eax, dword [ebp + 0x1bd0]
fld dword [ebp + 0x1c74]
mov eax, dword [eax + 0x1c]
fstp qword [esp + 0x40]
lea ecx, [ebp + 0x1bd0]
lea edx, [esp + 0x60]
push edx
call eax
fild dword [eax]
fidiv dword [ebp + 0x2918]
fchs
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 1
jne 0x437c43
fldz
fstp dword [ebp + 0x1c74]
lea esi, [ebp + 0x2c50]
call fcn.00446950
lea eax, [ebp + 0x2ab0]
call fcn.0044ffc0
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 4]
lea ecx, [ebp + 0x14]
call eax
mov eax, dword [ebp + 8]
lea esi, [eax + 0x418]
lea ecx, [eax + 0x428]
xor al, al
call fcn.00473c92
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
mov byte [esp + 0x3c], al
lea eax, [esp + 0x60]
push eax
mov ecx, esi
call edx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
mov eax, dword [ebp + 0x10]
call fcn.00445980
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp byte [ebp + 0x124e], 0
je 0x437cba
mov edi, ebp
call fcn.00439590
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x2010]
mov edx, dword [esi + 8]
mov eax, dword [edx + 0xf4]
lea ecx, [esi + 8]
call eax
test al, al
jne 0x4382db
cmp byte [esi + 0x1a4], al
jne 0x4382db
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x2f8], 0
jne 0x438298
mov eax, dword [eax + 0x2f8]
cmp eax, 1
je 0x438298
cmp eax, 3
je 0x438298
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x418]
mov edx, dword [edx + 0x18]
add ecx, 0x418
lea eax, [esp + 0x40]
push eax
call edx
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x428]
xor al, al
call fcn.00473c92
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
lea esi, [ebp + 0x1b98]
push esi
call fcn.004429a0
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x428]
xor al, al
call fcn.00473c92
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
lea edi, [ebp + 0x29b4]
push edi
call fcn.004429a0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
lea edx, [ebp + 0x2848]
push edx
call fcn.00450900
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, ebp
call fcn.00439530
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x428]
mov al, 1
call fcn.00473c92
test al, al
je 0x437e19
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x2f8], 0
jne 0x437e19
call fcn.00445960
test al, al
jne 0x437e19
cmp byte [ebp + 0x2aa5], al
je 0x437df3
mov eax, ebp
call fcn.00438e50
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
call fcn.00453fc0
mov esi, dword [ebp + 8]
call fcn.00453f40
mov eax, ebp
call fcn.0040a900
mov edi, ebp
call fcn.00439590
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x13958]
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
mov edx, dword [eax + 0x1395c]
mov eax, dword [eax + 0xdf480]
fdiv qword [0x6a1590]
mov dword [esp + 0x44], edx
fstp dword [esp + 0x3c]
test eax, eax
je 0x437e4d
mov eax, dword [eax + 0xc]
jmp 0x437e4f
xor eax, eax
mov ebx, dword [eax + 0x2c0]
mov eax, dword [eax + 0x2c4]
mov edx, dword [ebp + 0x1c80]
mov edx, dword [edx + 0x1c]
lea edi, [ebp + 0x1c80]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x48]
push eax
mov ecx, edi
call edx
fld dword [esp + 0x3c]
fld qword [0x6a21d0]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x208c]
fmul st(1)
call fcn.00631650
fld qword [0x6a21c8]
mov ecx, ebx
fmul st(1)
sub ecx, eax
mov dword [esp + 0x70], ecx
call fcn.00631650
fild dword [esp + 0x48]
mov edx, dword [esp + 0x44]
sub edx, eax
fadd qword [0x6a21a8]
mov dword [esp + 0x74], edx
fmul st(1)
call fcn.00631650
fild dword [esp + 0x4c]
add eax, ebx
mov dword [esp + 0x78], eax
fadd qword [0x6a1fe8]
fmulp st(1)
call fcn.00631650
add eax, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
cmp dword [ebp + 0x1c78], esi
je 0x437f13
mov dword [ebp + 0x1c78], esi
imul esi, esi, 0x3e8
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [ebp + 0x29f4]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x68]
call edx
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x418]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x50]
push edx
call eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x428]
xor al, al
call fcn.00473c92
test al, al
je 0x437f5d
cmp byte [ebp + 0x29f0], 0
jne 0x437f6a
lea edx, [esp + 0x50]
lea eax, [esp + 0x70]
call fcn.004b0505
test al, al
je 0x437f5d
mov byte [ebp + 0x29f0], 1
cmp byte [ebp + 0x29f0], 0
je 0x43801c
fld dword [esp + 0x3c]
fmul qword [0x6a21b0]
fst qword [esp + 0x60]
call fcn.00631650
mov edx, dword [edi]
mov esi, dword [ebp + 8]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x68]
push eax
mov ecx, edi
add esi, 0x418
call edx
mov eax, dword [eax]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [esp + 0x3c]
call fcn.00631650
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x70]
push ecx
mov ecx, esi
call edx
fld dword [esp + 0x3c]
mov esi, dword [eax]
fmul qword [0x6a21a8]
sub esi, edi
sub esi, dword [esp + 0x58]
fsub qword [esp + 0x60]
sub esi, ebx
imul esi, esi, 0x64
call fcn.00631650
mov ecx, eax
mov eax, esi
cdq
idiv ecx
test eax, eax
jge 0x437fef
xor eax, eax
jmp 0x437ff9
cmp eax, 0x64
jle 0x437ff9
mov eax, 0x64
mov edx, dword [ebp + 8]
mov dword [edx + 0x208c], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x418]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
call edx
test al, al
jne 0x43801c
mov byte [ebp + 0x29f0], al
mov eax, dword [ebp + 0x1bb4]
sub eax, dword [ebp + 0x1bb0]
lea edi, [ebp + 0x1ba4]
xor esi, esi
mov dword [esp + 0x3c], esi
test eax, 0xffffff80
jle 0x438201
nop
mov ebx, esi
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
call eax
test al, al
je 0x438072
mov eax, dword [ebp + 8]
fldz
mov edx, dword [eax + 0xdeee8]
lea ecx, [eax + 0xdeee8]
mov eax, dword [edx + 8]
sub esp, 8
fstp qword [esp]
push 0
call eax
mov ebx, esi
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x68]
call eax
test al, al
je case.default.0x4380ad
mov eax, dword [ebp + 8]
fldz
mov edx, dword [eax + 0xdeda8]
lea ecx, [eax + 0xdeda8]
mov eax, dword [edx + 8]
sub esp, 8
fstp qword [esp]
push 0
call eax
cmp esi, 6
ja case.default.0x4380ad
jmp dword [esi*4 + 0x4382e4]
mov eax, ebp
call fcn.00439150
jmp case.default.0x4380ad
mov eax, ebp
call fcn.00438e50
jmp case.default.0x4380ad
mov eax, ebp
call fcn.00438f30
jmp case.default.0x4380ad
mov eax, ebp
call fcn.00439020
jmp case.default.0x4380ad
mov esi, ebp
call fcn.00438fb0
mov esi, dword [esp + 0x3c]
jmp case.default.0x4380ad
mov ebx, 5
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
call eax
xor al, al
mov ebx, 6
mov byte [ebp + 0x2aa8], al
mov byte [ebp + 0x2aa7], al
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
jmp case.default.0x4380ad
push 1
mov eax, ebp
call fcn.00439310
mov ebx, esi
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x6c]
call eax
test al, al
je 0x4381eb
mov eax, esi
sub eax, 1
je 0x4381dc
sub eax, 4
je 0x43819e
sub eax, 1
jne 0x4381eb
mov ecx, dword [ebp + 8]
call fcn.00453fc0
mov ebx, 6
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
mov esi, ebp
mov byte [ebp + 0x2aa7], 0
call fcn.00439370
mov ebx, 5
mov byte [ebp + 0x2aa8], 1
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
mov esi, dword [esp + 0x3c]
jmp 0x4381eb
mov ecx, dword [ebp + 8]
call fcn.00453fc0
mov ebx, 5
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
mov ebx, 6
mov byte [ebp + 0x2aa8], 1
mov byte [ebp + 0x2aa7], 0
call fcn.0041c2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
jmp 0x4381eb
mov ecx, dword [ebp + 8]
call fcn.00453fc0
mov eax, ebp
call fcn.00438e50
mov ecx, dword [edi + 0x10]
sub ecx, dword [edi + 0xc]
inc esi
sar ecx, 7
cmp esi, ecx
mov dword [esp + 0x3c], esi
jl 0x438040
mov edx, dword [ebp + 0x29d0]
sub edx, dword [ebp + 0x29cc]
lea edi, [ebp + 0x29c0]
xor ebx, ebx
test edx, 0xffffff80
jle 0x4382db
call fcn.0041c2c0
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
call edx
test al, al
je 0x43824d
mov eax, dword [ebp + 8]
fldz
lea ecx, [eax + 0xdeee8]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
sub esp, 8
fstp qword [esp]
push 0
call edx
call fcn.0041c2c0
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0x68]
call edx
test al, al
je 0x438282
mov eax, dword [ebp + 8]
fldz
lea ecx, [eax + 0xdeda8]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
sub esp, 8
fstp qword [esp]
push 0
call edx
mov edx, ebx
mov eax, ebp
call fcn.00439290
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
inc ebx
sar eax, 7
cmp ebx, eax
jl 0x438221
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffd8f1
mov ecx, eax
push ecx
push eax
push 0
lea ecx, [ebp + 0x1b98]
push ecx
call fcn.004429a0
mov eax, 0xffffd8f1
mov ecx, eax
push ecx
push eax
push 0
lea edx, [ebp + 0x29b4]
push edx
call fcn.004429a0
mov eax, 0xffffd8f1
mov ecx, eax
push ecx
push eax
add ebp, 0x2848
push ebp
call fcn.00450900
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret