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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x58b8d8
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push ebp
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp]
mov edx, dword [eax + 0x88]
push esi
push edi
mov ecx, ebp
call edx
test al, al
jne 0x41b754
call fcn.00404bf0
mov eax, dword [eax + 8]
cmp dword [eax + 0xc], 3
jne 0x41b754
call fcn.00404bf0
mov ebx, dword [esp + 0x64]
mov eax, dword [eax + 8]
mov edi, ebx
call fcn.0042a800
jmp 0x41b758
mov ebx, dword [esp + 0x64]
cmp dword [ebp + 0x54], 0
mov edi, dword [esp + 0x60]
jne 0x41b7ac
mov eax, dword [edi + 0xf0]
mov esi, dword [eax + 0x40]
mov edx, dword [ebp]
mov eax, dword [edx + 0x40]
push esi
mov ecx, ebp
call eax
mov ecx, dword [esi + 0x4008]
mov dword [esi + ecx*4 + 8], ebp
mov ecx, dword [esi + 0x240c8]
add dword [esi + 0x4008], 1
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ebp
call eax
cmp dword [ebp + 0x4c], 0
jbe 0x41b7ac
lea ecx, [ebp + 0x38]
push ecx
lea ecx, [esi + 0x40a0]
call fcn.004626a0
mov dword [eax], ebp
lea edx, [edi + 0x114]
xor esi, esi
mov dword [esp + 0x68], edx
cmp esi, ebx
je 0x41b859
mov eax, dword [esp + 0x68]
cmp dword [eax], ebp
jne 0x41b859
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x40]
push esi
mov ecx, 0x619c48
call eax
fld dword [eax + 0x2c]
fstp dword [esp + 0x2c]
mov dword [esp + 0x28], 0x5cf904
fld dword [eax + 0x30]
fstp dword [esp + 0x30]
mov dword [esp + 0x58], 0
fldz
mov ecx, dword [edi + 0xf0]
mov eax, dword [ecx + 0x20]
push ecx
fstp dword [esp]
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c]
push ecx
push eax
call fcn.0047fd50
mov byte [esp + 0x58], 1
fld dword [eax + 4]
fstp dword [esp + 0x2c]
fld dword [eax + 8]
fstp dword [esp + 0x30]
mov byte [esp + 0x58], 0
push 0
lea edx, [esp + 0x2c]
push edx
push esi
mov ecx, edi
mov dword [esp + 0x20], 0x5cf904
call fcn.00418110
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x28], 0x5cf904
add dword [esp + 0x68], 4
add esi, 1
cmp esi, 4
jl 0x41b7b8
mov eax, dword [0x619c48]
mov edx, dword [eax + 0x40]
push ebx
mov ecx, 0x619c48
call edx
fld dword [eax + 0x2c]
fstp dword [esp + 0x2c]
mov esi, 0x5cf904
fld dword [eax + 0x30]
mov dword [esp + 0x28], esi
fstp dword [esp + 0x30]
mov dword [esp + 0x58], 2
fldz
mov eax, dword [edi + 0xf0]
mov eax, dword [eax + 0x20]
push ecx
fstp dword [esp]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.0047fd50
mov byte [esp + 0x58], 3
fld dword [eax + 4]
fstp dword [esp + 0x2c]
fld dword [eax + 8]
fstp dword [esp + 0x30]
mov byte [esp + 0x58], 2
fldz
mov eax, dword [ebp + 0x34]
lea ecx, [esp + 0x40]
push ecx
sub esp, 0xc
fstp dword [esp + 8]
mov dword [esp + 0x44], esi
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x3c]
fstp dword [esp]
push eax
call fcn.005604e4
fld dword [esp + 0x54]
fstp dword [esp + 0x2c]
add esp, 0x14
fld dword [esp + 0x44]
mov dword [esp + 0x14], esi
fstp dword [esp + 0x1c]
mov byte [esp + 0x58], 4
fld dword [esp + 0x18]
fstp dword [ebp + 0x1c0]
fld dword [esp + 0x1c]
fstp dword [ebp + 0x1c4]
mov byte [esp + 0x58], 2
mov dl, byte [esp + 0x6c]
mov dword [edi + ebx*4 + 0x114], ebp
mov byte [ebx + edi + 0x1b4], dl
mov dword [esp + 0x14], esi
mov esi, dword [edi + ebx*4 + 0x114]
fld dword [esi + 0x1cc]
mov eax, dword [esi + 8]
mov edx, dword [eax + 0xc]
fstp dword [esi + 0x1d8]
fld dword [esi + 0x1d0]
lea ecx, [esi + 8]
fstp dword [esi + 0x1dc]
call edx
fld dword [eax + 4]
fstp dword [esi + 0x1cc]
fld dword [eax + 8]
fstp dword [esi + 0x1d0]
mov eax, dword [ebp + 0x174]
mov eax, dword [eax + 0x2a4]
mov dword [ebp + 0x17c], eax
call fcn.00404bf0
mov esi, eax
fld dword [esi + 0x30]
fstp qword [esp + 0x14]
mov eax, dword [0x619c48]
mov edx, dword [eax + 0x28]
mov ecx, 0x619c48
call edx
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
mov eax, dword [ebp + 0x174]
fdivr qword [esp + 0x14]
fmul dword [esi + 0x2c]
fadd dword [esi + 0x14]
fstp dword [ebp + 0x180]
fldz
fcomp dword [eax + 0x14c]
fnstsw ax
test ah, 5
jp 0x41ba56
mov eax, dword [ebp + 0x13c]
cmp eax, 0xb
je 0x41ba56
cmp eax, 0xc
je 0x41ba56
test eax, eax
je 0x41ba05
cmp eax, 1
je 0x41ba05
mov ebx, ebp
call fcn.004bf680
test al, al
mov ebx, dword [esp + 0x64]
je 0x41ba56
cmp dword [edi + ebx*4 + 0x194], 0
jne 0x41ba30
push ebp
push ebx
mov ebx, edi
call fcn.0041a180
fld1
push 0
push ecx
mov ecx, 6
fstp dword [esp]
mov esi, ebp
call fcn.0043a810
mov ebx, dword [esp + 0x64]
xor eax, eax
lea ecx, [edi + 0x124]
cmp eax, ebx
je 0x41ba46
cmp dword [ecx], ebp
jne 0x41ba46
mov dword [ecx], 0
add eax, 1
add ecx, 4
cmp eax, 4
jl 0x41ba38
jmp 0x41be18
mov edx, dword [ebp]
mov eax, dword [edx + 0x88]
mov ecx, ebp
call eax
test al, al
je 0x41bab6
mov edx, dword [ebp]
mov eax, dword [edx + 0x3c]
mov ecx, ebp
call eax
test al, al
mov eax, ebp
je 0x41ba7b
push 0xa
jmp 0x41ba7d
push 5
call fcn.00437390
push ebp
push ebx
mov ebx, edi
call fcn.0041a180
fld1
push 0
push ecx
mov ecx, 6
fstp dword [esp]
mov esi, ebp
call fcn.0043a810
cmp dword [edi + 0xc], 0
je 0x41be18
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
jmp 0x41be15
mov eax, dword [ebp + 0x34]
fldz
test eax, eax
jne 0x41bacd
fst dword [ebp + 0x104]
fstp dword [ebp + 0x108]
jmp 0x41bae4
sub esp, 0xc
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.0057592e
add esp, 0x10
mov edx, dword [ebp]
mov eax, dword [edx + 0x3c]
mov ecx, ebp
call eax
test al, al
je 0x41bb03
mov edx, dword [ebp]
mov eax, dword [edx + 0xb0]
push 0
push 0
mov ecx, ebp
call eax
mov eax, dword [ebp + 0x13c]
cmp eax, 0xd
je 0x41bdf3
cmp eax, 3
je 0x41bdf3
cmp eax, 2
jne 0x41bb27
mov byte [ebp + 0x6c0], 0
push 3
push eax
mov ebx, ebp
call fcn.0043cb00
mov ebx, 1
cmp dword [ebp + 0x13c], ebx
jne 0x41bb55
mov eax, dword [ebp + 0x63c]
add dword [eax + 0x180], 0xffffffff
mov dword [ebp + 0x63c], 0
mov eax, dword [ebp + 0x13c]
fld dword [0x5ec7b0]
cmp eax, 3
fstp dword [ebp + 0x698]
mov dword [ebp + 0x13c], 3
je 0x41bbcd
mov edx, dword [ebp]
mov eax, dword [edx + 0x70]
mov ecx, ebp
call eax
fstp dword [esp + 0x6c]
fld dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x34]
fstp dword [esp + 0x64]
lea eax, [ebp + 0x6c]
fld dword [esp + 0x6c]
push eax
fst dword [eax]
push ecx
fdiv dword [esp + 0x6c]
fld dword [ebp + 0x80]
fmul st(1)
fstp dword [ebp + 0x80]
fld dword [ebp + 0x94]
fmul st(1)
fstp dword [ebp + 0x94]
fmul dword [ebp + 0xa8]
fstp dword [ebp + 0xa8]
call fcn.00560502
add esp, 8
fldz
mov ecx, 2
mov edi, ebp
fstp dword [ebp + 0xc8]
mov byte [ebp + 0x69], bl
call fcn.0043a640
mov ecx, dword [ebp + 0x174]
mov dl, byte [ecx + 0x5a]
xor edi, edi
xor eax, eax
test dl, dl
jne case.default.0x41bc08
mov edx, dword [ebp + 0x13c]
cmp edx, 0xd
ja case.default.0x41bc08
jmp dword [edx*4 + 0x41be84]
cmp byte [ecx + 0x69], 0
mov eax, ebx
mov edi, 0xe3
je 0x41bc21
mov edi, 0xeb
cmp byte [ecx + 0x155], 0
je case.default.0x41bc08
or edi, 0x10
jmp case.default.0x41bc08
cmp byte [ecx + 0x69], 0
mov eax, 2
mov edi, 0x1e2
je 0x41bc21
mov edi, 0x1ea
jmp 0x41bc21
mov eax, 4
xor edi, edi
jmp case.default.0x41bc08
cmp byte [ecx + 0x68], 0
mov eax, 8
mov edi, 0xe0
je case.default.0x41bc08
mov edi, 0xe8
jmp case.default.0x41bc08
mov edi, 0xe0
jmp 0x41bc9e
cmp byte [ecx + 0x155], 0
mov eax, 0x10
mov edi, 0x8f0
je case.default.0x41bc08
mov edi, 0x8fb
jmp case.default.0x41bc08
xor eax, eax
xor edi, edi
jmp case.default.0x41bc08
mov eax, 0x400
mov edi, 0x420
jmp case.default.0x41bc08
mov edi, 0xc0
mov eax, 8
mov esi, ebp
call fcn.004bf510
mov eax, edi
call fcn.004bf4b0
mov eax, dword [ebp + 0x13c]
add eax, 0xfffffffc
cmp eax, 8
ja case.0x41bcc6.6
movzx ecx, byte [eax + 0x41bec4]
jmp dword [ecx*4 + 0x41bebc]
mov edx, dword [ebp + 0x174]
mov al, byte [edx + 0x4c]
mov byte [esp + 0x6c], al
jmp 0x41bce9
mov eax, dword [ebp + 0x174]
mov cl, byte [eax + 0x4d]
mov byte [esp + 0x6c], cl
mov eax, dword [esp + 0x6c]
mov edx, dword [ebp]
mov edx, dword [edx + 0x28]
push eax
mov ecx, ebp
call edx
mov eax, dword [ebp + 0x13c]
sub eax, 0xb
je 0x41bd10
sub eax, ebx
jne 0x41bd55
mov edi, ebp
call fcn.0043c140
jmp 0x41bd55
mov eax, ebp
call fcn.0043b560
fadd st(0), st(0)
push ecx
mov eax, ebp
fdivr qword [0x5ec840]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fstp dword [esp]
call fcn.0043b560
fadd st(0), st(0)
sub esp, 8
mov edi, ebp
fdivr qword [0x5ecbb0]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp dword [esp + 4]
fld1
fstp dword [esp]
call fcn.0043c0c0
cmp byte [ebp + 0x6b4], 0
je 0x41bd80
mov eax, dword [ebp + 0x13c]
cmp eax, 4
je 0x41bd6e
cmp eax, 9
jne 0x41bd80
call fcn.00404bf0
mov esi, eax
call fcn.00402df0
fstp dword [ebp + 0x6bc]
cmp dword [ebp + 0x13c], 3
jne 0x41bde9
mov eax, dword [ebp]
mov edx, dword [eax + 0x70]
mov ecx, ebp
call edx
fmul qword [0x5ec970]
fstp qword [esp + 0x14]
call dword [0x58e3e8]
and eax, 0x80000001
jns 0x41bdaf
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, 2
add eax, 0xffffffff
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
mov eax, dword [ebp + 0x34]
sub esp, 0xc
fmul qword [esp + 0x20]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp dword [esp + 8]
fldz
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.005604f6
add esp, 0x10
push ebp
call fcn.00437750
mov edi, dword [esp + 0x60]
fld1
push 0
push ecx
fstp dword [esp]
mov ecx, 2
mov esi, ebp
call fcn.0043a810
cmp dword [edi + 0xc], 0
je 0x41be18
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x41be39
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [ebp + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [ebp + 0x108]
mov esi, dword [ebp + 0x174]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
lea ecx, [ebp + 8]
push 5
add ebp, 0x100
push ebp
call eax
push eax
push edi
mov ecx, esi
call fcn.0041b3d0
mov dword [esp + 0x58], 0xffffffff
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov dword [esp + 0x1c], 0x5cf904
mov dword fs:[0], ecx
pop ebx
add esp, 0x4c
ret 0x10