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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1f4
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 8]
xor edx, edx
dec eax
test ecx, ecx
setle dl
mov dword [esp + 0x14], edi
dec edx
and edx, ecx
mov esi, edx
cmp eax, esi
jge 0x41a1de
mov esi, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
add ecx, 0x10
call fcn.005b5050
mov eax, esi
mov dword [esp + 0xc], eax
xor edx, edx
lea ecx, [edi + esi*4 + 8]
test eax, eax
jl 0x41a20f
mov esi, dword [ecx]
mov bl, byte [esi + 0x74]
test bl, bl
jne 0x41a206
inc edx
dec eax
sub ecx, 4
cmp edx, 2
jl 0x41a1f8
test eax, eax
mov dword [esp + 0xc], eax
jg 0x41a21d
xor eax, eax
mov dword [esp + 0xc], eax
mov ecx, dword [edi + 4]
cmp eax, ecx
jge 0x41aa80
jmp 0x41a232
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
cmp eax, ecx
jge 0x41a255
lea edx, [edi + eax*4 + 8]
lea ebx, [ebx]
mov esi, dword [edx]
mov bl, byte [esi + 0x74]
test bl, bl
je 0x41a251
inc eax
add edx, 4
cmp eax, ecx
jl 0x41a240
mov dword [esp + 0xc], eax
lea edx, [eax + 1]
cmp edx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
jge 0x41a27d
lea esi, [edi + edx*4 + 8]
mov edi, dword [esi]
mov bl, byte [edi + 0x74]
test bl, bl
je 0x41a279
inc edx
add esi, 4
cmp edx, ecx
jl 0x41a268
mov dword [esp + 0x1c], edx
cmp eax, ecx
jge 0x41aa69
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jge 0x41aa69
mov edx, dword [esp + 0xc]
mov ecx, eax
sub ecx, edx
cmp ecx, 1
jle 0x41aa69
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edx*4 + 8]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [eax + ecx*4 + 8]
mov edx, dword [edi + 0x54]
fld dword [ebx + 0x54]
mov dword [esp + 0x2c], edx
fsub dword [esp + 0x2c]
push 0
push 0
mov eax, edx
fstp dword [esp + 0x30]
push eax
fld dword [0x783c90]
lea ecx, [esp + 0x15c]
fmul dword [esp + 0x34]
push ecx
mov ecx, edi
fstp dword [esp + 0x28]
call fcn.004122f0
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x154]
push 0
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov ecx, dword [ebx + 0x54]
push 0
push ecx
lea edx, [esp + 0x14c]
push edx
mov ecx, ebx
call fcn.004122f0
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x10], 2
xor esi, esi
mov dword [esp + 0x20], 4
lea ecx, [ecx]
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x54]
push edx
push 0
push eax
lea ecx, [esp + 0x12c]
push ecx
mov ecx, edi
call fcn.004122f0
fld dword [esp + 0x120]
mov edx, dword [esp + 0x10]
fstp dword [esp + esi + 0x180]
fld dword [esp + 0x124]
push edx
fstp dword [esp + esi + 0x188]
mov eax, dword [ebx + 0x54]
push 0
push eax
lea ecx, [esp + 0x10c]
push ecx
mov ecx, ebx
call fcn.004122f0
fld dword [esp + 0x100]
mov edx, dword [esp + 0x10]
fstp dword [esp + esi + 0x1c0]
fld dword [esp + 0x104]
mov eax, dword [esp + 0x20]
fstp dword [esp + esi + 0x1c4]
inc edx
add esi, 8
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x41a340
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0xc]
inc edi
cmp edi, eax
lea edx, [ebx - 1]
mov dword [esp + 0x10], edi
jge 0x41a3fe
lea ecx, [ecx + edi*4 + 8]
mov esi, dword [ecx]
cmp byte [esi + 0x74], 0
je 0x41a3f6
inc edi
add ecx, 4
cmp edi, eax
jl 0x41a3e6
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
test edx, edx
jl 0x41a4cc
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edx*4 + 8]
mov ecx, dword [edi + 0x54]
push 0
push 0
push ecx
lea edx, [esp + 0x17c]
push edx
mov ecx, edi
call fcn.004122f0
fld dword [esp + 0x174]
fld dword [esp + 0x40]
mov eax, dword [esp + 0x18]
fsub dword [esp + 0x170]
push eax
lea ecx, [esp + 0x34]
push ecx
fstp dword [esp + 0x38]
lea edx, [esp + 0x38]
fld dword [esp + 0x4c]
push edx
fsub st(1)
fstp dword [esp + 0x40]
fstp st(0)
call fcn.0043cf20
add esp, 0xc
xor ebx, ebx
xor esi, esi
mov ecx, dword [edi + 0x54]
lea eax, [ebx + 2]
push eax
push 0
push ecx
lea edx, [esp + 0x16c]
push edx
mov ecx, edi
call fcn.004122f0
fld dword [esp + 0x164]
fld dword [esp + esi + 0x180]
mov ecx, dword [esp + 0x18]
lea eax, [esp + esi + 0x1e0]
fsub dword [esp + 0x160]
push ecx
push eax
fstp dword [eax]
push eax
fld dword [esp + esi + 0x190]
fsub st(1)
fstp dword [esp + esi + 0x1f0]
fstp st(0)
call fcn.0043cf20
add esp, 0xc
add esi, 8
inc ebx
cmp esi, 0x20
jl 0x41a462
mov edi, dword [esp + 0x10]
jmp 0x41a5ec
mov ecx, dword [ecx + ebx*4 + 8]
mov ax, word [ecx + 0x5c]
cmp ax, 0xffff
je 0x41a514
mov dx, word [ecx + 0x5e]
cmp dx, 0xffff
je 0x41a514
movsx eax, ax
test eax, eax
jl 0x41a4f4
mov eax, dword [eax*4 + 0x88a334]
jmp 0x41a4f6
xor eax, eax
movsx edx, dx
imul edx, edx, 0x38
lea eax, [edx + eax + 0x8c]
test eax, eax
je 0x41a514
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x64]
push eax
call dword [edx + 0x20]
jmp 0x41a524
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0x3f800000
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x78]
push eax
call fcn.0043cf20
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
add esp, 0xc
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
xor esi, esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ebx*4 + 8]
mov ax, word [ecx + 0x5c]
cmp ax, 0xffff
je 0x41a59c
mov dx, word [ecx + 0x5e]
cmp dx, 0xffff
je 0x41a59c
movsx eax, ax
test eax, eax
jl 0x41a57c
mov eax, dword [eax*4 + 0x88a334]
jmp 0x41a57e
xor eax, eax
movsx edx, dx
imul edx, edx, 0x38
lea eax, [edx + eax + 0x8c]
test eax, eax
je 0x41a59c
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x54]
push eax
call dword [edx + 0x20]
jmp 0x41a5ac
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0x3f800000
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x90]
push eax
call fcn.0043cf20
fld dword [esp + 0x94]
fstp dword [esp + esi*8 + 0x1ec]
add esp, 0xc
fld dword [esp + 0x8c]
inc esi
cmp esi, 4
fstp dword [esp + esi*8 + 0x1dc]
jl 0x41a550
mov eax, dword [esp + 0x14]
cmp edi, dword [eax + 4]
jge 0x41a6bd
mov edx, dword [esp + 0x10]
mov ecx, eax
mov edi, dword [ecx + edx*4 + 8]
mov eax, dword [edi + 0x54]
push 0
push 0
push eax
lea ecx, [esp + 0x13c]
push ecx
mov ecx, edi
call fcn.004122f0
fld dword [esp + 0x134]
fld dword [esp + 0x130]
mov edx, dword [esp + 0x18]
fsub dword [esp + 0x48]
push edx
lea eax, [esp + 0x3c]
push eax
fstp dword [esp + 0x40]
lea ecx, [esp + 0x40]
push ecx
fsub dword [esp + 0x58]
fstp dword [esp + 0x48]
call fcn.0043cf20
add esp, 0xc
xor ebx, ebx
xor esi, esi
mov eax, dword [edi + 0x54]
lea edx, [ebx + 2]
push edx
push 0
push eax
lea ecx, [esp + 0x11c]
push ecx
mov ecx, edi
call fcn.004122f0
fld dword [esp + 0x114]
fld dword [esp + esi + 0x1c0]
mov edx, dword [esp + 0x18]
lea eax, [esp + esi + 0x1a0]
fsubr dword [esp + 0x110]
push edx
push eax
fstp dword [eax]
push eax
fld dword [esp + esi + 0x1d0]
fsubr st(1)
fstp dword [esp + esi + 0x1b0]
fstp st(0)
call fcn.0043cf20
add esp, 0xc
add esi, 8
inc ebx
cmp esi, 0x20
jl 0x41a653
mov edi, dword [esp + 0x1c]
jmp 0x41a7e5
mov edi, dword [esp + 0x1c]
mov ecx, dword [eax + edi*4 + 8]
mov ax, word [ecx + 0x5c]
cmp ax, 0xffff
je 0x41a709
mov dx, word [ecx + 0x5e]
cmp dx, 0xffff
je 0x41a709
movsx eax, ax
test eax, eax
jl 0x41a6e9
mov eax, dword [eax*4 + 0x88a334]
jmp 0x41a6eb
xor eax, eax
movsx edx, dx
imul edx, edx, 0x38
lea eax, [edx + eax + 0x8c]
test eax, eax
je 0x41a709
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x5c]
push eax
call dword [edx + 0x1c]
jmp 0x41a719
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0x3f800000
mov ebx, dword [esp + 0x18]
push ebx
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.0043cf20
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
add esp, 0xc
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
xor esi, esi
jmp 0x41a750
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 8]
mov ax, word [ecx + 0x5c]
cmp ax, 0xffff
je 0x41a79c
mov dx, word [ecx + 0x5e]
cmp dx, 0xffff
je 0x41a79c
movsx eax, ax
test eax, eax
jl 0x41a77c
mov eax, dword [eax*4 + 0x88a334]
jmp 0x41a77e
xor eax, eax
movsx edx, dx
imul edx, edx, 0x38
lea eax, [edx + eax + 0x8c]
test eax, eax
je 0x41a79c
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x6c]
push eax
call dword [edx + 0x1c]
jmp 0x41a7ac
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
push ebx
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.0043cf20
fld dword [esp + 0x84]
fstp dword [esp + esi*8 + 0x1ac]
add esp, 0xc
fld dword [esp + 0x7c]
inc esi
cmp esi, 4
fstp dword [esp + esi*8 + 0x19c]
jl 0x41a750
xor ecx, ecx
mov eax, 1
mov word [esp + 0xbe], ax
mov word [esp + 0xee], ax
lea eax, [esp + 0x40]
mov word [esp + 0xbc], cx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], ecx
mov word [esp + 0xec], cx
lea esi, [edi - 1]
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xb8], 0x3f800000
mov dword [esp + 0xbc], 0x3f800000
mov dword [esp + 0xe8], 0x3f800000
mov dword [esp + 0xec], 0x3f800000
mov dword [esp + 0x1c], esi
call fcn.00574790
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x94]
call fcn.005747d0
lea edx, [esp + 0x48]
push edx
lea ecx, [esp + 0x94]
call fcn.00574810
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x94]
call fcn.00574850
lea ecx, [esp + 0x90]
call fcn.005744b0
lea ecx, [esp + 0xc0]
call fcn.005744b0
mov eax, dword [esp + 0x24]
cmp eax, esi
jg 0x41a948
fld dword [0x784250]
mov ecx, dword [esp + 0x14]
fdiv dword [esp + 0x28]
mov edi, esi
sub edi, eax
lea ebx, [ecx + eax*4 + 8]
inc edi
fstp dword [esp + 0xc]
mov esi, dword [ebx]
fld dword [esi + 0x54]
push ecx
fsub dword [esp + 0x30]
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x94]
fmul dword [esp + 0x10]
fstp dword [esp]
push edx
call fcn.005748b0
push 0
lea eax, [esp + 0xf4]
push eax
mov ecx, esi
call fcn.004123f0
fadd dword [esi + 4]
add ebx, 4
dec edi
fstp dword [esi + 4]
jne 0x41a906
xor esi, esi
mov dword [esp + 0x10], esi
mov ebx, 8
jmp 0x41a960
mov esi, dword [esp + 0x10]
lea esp, [esp]
lea ecx, [esp + esi*8 + 0x180]
push ecx
lea ecx, [esp + 0x94]
call fcn.00574790
lea edx, [esp + esi*8 + 0x1e0]
push edx
lea ecx, [esp + 0x94]
call fcn.005747d0
lea eax, [esp + esi*8 + 0x1c0]
push eax
lea ecx, [esp + 0x94]
call fcn.00574810
lea ecx, [esp + esi*8 + 0x1a0]
push ecx
lea ecx, [esp + 0x94]
call fcn.00574850
lea ecx, [esp + 0x90]
call fcn.005744b0
lea ecx, [esp + 0xc0]
call fcn.005744b0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
cmp eax, edx
jg 0x41aa54
fld dword [0x784250]
mov ecx, dword [esp + 0x14]
fdiv dword [esp + 0x28]
mov edi, dword [esp + 0x18]
lea edx, [ecx + eax*4 + 8]
sub edi, eax
mov dword [esp + 0x20], edx
inc edi
fstp dword [esp + 0xc]
lea esp, [esp]
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
fld dword [esi + 0x54]
push ecx
fsub dword [esp + 0x30]
lea ecx, [esp + 0xfc]
fmul dword [esp + 0x10]
fstp dword [esp]
push ecx
lea ecx, [esp + 0x98]
call fcn.005748b0
mov eax, dword [esp + 0x10]
add eax, 2
push eax
lea edx, [esp + 0xfc]
push edx
mov ecx, esi
call fcn.004123f0
fadd dword [ebx + esi]
mov ecx, dword [esp + 0x20]
add ecx, 4
dec edi
fstp dword [ebx + esi]
mov dword [esp + 0x20], ecx
jne 0x41aa00
mov edx, dword [esp + 0x10]
inc edx
add ebx, 4
cmp ebx, 0x18
mov dword [esp + 0x10], edx
jl 0x41a955
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x41a22a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8