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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push ebx
push ebp
push esi
push edi
push 0x3f800000
push eax
push ecx
xor ebp, ebp
push edx
push 5
mov dword [0x536e30], 0x3f4ccccd
mov dword [0x579a28], 0x3992ccf7
mov dword [0x545920], 0xbf800000
mov dword [esp + 0x38], ebp
mov dword [esp + 0x58], 0x393cbe62
mov dword [esp + 0x28], 0xfa0
call fcn.0040ab60
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push 0x3f800000
push eax
push ecx
push edx
push 0x11
call fcn.0040abc0
mov dword [esp + 0x88], eax
mov eax, dword [0x57ab94]
add esp, 0x28
cmp eax, 0x3e8
jge 0x41a919
call fcn.00415d50
mov dword [0x545818], ebp
xor eax, eax
mov cl, 0x40
cmp byte [eax + 0x58002c], cl
jne 0x41a932
mov byte [eax + 0x58002c], 0
inc eax
cmp eax, 0x1000
jb 0x41a923
mov eax, 1
mov dword [0x5790d4], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], eax
mov eax, dword [0x57ab9c]
mov dword [0x579118], ebp
cmp eax, ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x18], 0xbe99999a
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 0x437f0000
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], 0
je 0x41a9bf
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790a8]
push ebp
push 0x42480000
push 0x437f0000
push eax
push 0x3ccccccd
push ecx
call fcn.0041a600
add esp, 0x18
mov dword [0x57ab9c], ebp
mov edi, dword [esp + 0x34]
call fcn.00417fe0
cmp dword [esp + 0x14], ebp
jle 0x41a9d3
call fcn.00417db0
cmp dword [0x579114], ebp
je 0x41a9e6
call fcn.0041c500
mov dword [0x579114], ebp
mov eax, dword [0x5790dc]
mov ecx, dword [esp + 0x14]
mov ebx, eax
mov esi, eax
mov eax, dword [esp + 0x48]
sub ecx, esi
cmp eax, ebp
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x14], ecx
je 0x41aae3
mov eax, ecx
cmp eax, 0xf0a
jge 0x41aae3
cmp dword [0x5b2ed0], ebp
je 0x41aadf
mov edx, dword [0x57aba8]
lea eax, [edx + 1]
and eax, 3
mov dword [0x57aba8], eax
jne 0x41aa5d
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push 0x3fc00000
push eax
push ecx
push edx
push 0x27
call fcn.0040ab60
mov eax, dword [0x57aba8]
add esp, 0x14
cmp eax, 1
jne 0x41aa8a
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push 0x3fc00000
push eax
push ecx
push edx
push 0x2b
call fcn.0040ab60
mov eax, dword [0x57aba8]
add esp, 0x14
cmp eax, 2
jne 0x41aab7
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push 0x3fc00000
push eax
push ecx
push edx
push 0x2c
call fcn.0040ab60
mov eax, dword [0x57aba8]
add esp, 0x14
cmp eax, 3
jne 0x41aadf
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790ac]
mov edx, dword [0x5790a8]
push 0x3fc00000
push eax
push ecx
push edx
push 0x34
call fcn.0040ab60
add esp, 0x14
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x24]
mov dword [0x5790bc], 0x3dd2f1aa
cmp eax, ebp
jne 0x41ad0f
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebp
fild qword [esp + 0x80]
fld st(0)
fmul dword [esp + 0x44]
fadd dword [0x5790ac]
fstp dword [0x5790ac]
fld st(0)
fmul dword [0x579128]
fadd dword [0x5790a8]
fstp dword [0x5790a8]
fld st(0)
fmul dword [0x57912c]
fadd dword [0x5790b0]
fstp dword [0x5790b0]
fld dword [0x5790a8]
fcomp dword [0x4394d0]
fnstsw ax
test ah, 1
je 0x41ab67
mov dword [0x5790a8], 0x3ec7ae14
jmp 0x41ab84
fld dword [0x5790a8]
fcomp dword [0x4394cc]
fnstsw ax
test ah, 0x41
jne 0x41ab84
mov dword [0x5790a8], 0x3f1c28f6
fld dword [0x5790b0]
fcomp dword [0x4394d0]
fnstsw ax
test ah, 1
je 0x41aba3
mov dword [0x5790b0], 0x3ec7ae14
jmp 0x41abc0
fld dword [0x5790b0]
fcomp dword [0x4394cc]
fnstsw ax
test ah, 0x41
jne 0x41abc0
mov dword [0x5790b0], 0x3f1c28f6
fld dword [0x5790ac]
fsub dword [0x439420]
fmul dword [0x439234]
fadd dword [0x439474]
fstp dword [0x5790bc]
fmul dword [0x4394c8]
fsubr dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [0x5790ac]
fcomp dword [0x439420]
fnstsw ax
test ah, 1
je 0x41ad0f
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790a8]
push 0x437f0000
push 0x437f0000
push ebp
push eax
push 0x3ccccccd
push ecx
call fcn.0041a600
mov eax, dword [esp + 0x78]
mov edx, dword [0x540fc8]
push eax
mov dword [0x541014], edx
call fcn.0040ac70
mov ecx, dword [0x5790b0]
mov edx, dword [0x5790ac]
mov eax, dword [0x5790a8]
push 0x3fa66666
push ecx
push edx
push eax
push 4
call fcn.0040ab60
add esp, 0x30
call fcn.00416d80
fld dword [0x5790a8]
fsub dword [0x4393b0]
mov dword [esp + 0x24], 1
mov dword [0x5790ac], 0x3f000000
mov dword [0x536e30], 0x3f0ccccd
mov dword [esp + 0x1c], 0x41500000
fmul dword [0x4393ac]
mov dword [esp + 0x2c], 0
call fcn.0042ff3c
fld dword [0x5790b0]
fsub dword [0x4393b0]
mov dword [0x57908c], eax
fmul dword [0x4393ac]
call fcn.0042ff3c
fld dword [0x4394c4]
fsub dword [0x5790a8]
mov ecx, dword [0x5790a8]
mov edx, dword [0x5790b0]
mov dword [0x579090], eax
mov dword [esp + 0x64], ecx
fmul dword [0x4394c0]
mov dword [esp + 0x3c], 0x3c75c28f
mov dword [esp + 0x40], edx
fstp dword [esp + 0x4c]
fld dword [0x4394bc]
fsub dword [0x5790b0]
fmul dword [0x4394c0]
fstp dword [esp + 0x50]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ebp
fild qword [esp + 0x68]
mov dword [0x5790f8], 0x3bbac711
fst dword [esp + 0x10]
fmul dword [0x4392d8]
fld dword [esp + 0x1c]
fsub st(1)
fst dword [esp + 0x1c]
fcomp dword [0x439224]
fnstsw ax
test ah, 1
je 0x41ad4e
mov dword [esp + 0x1c], 0
fadd dword [esp + 0x2c]
fst dword [esp + 0x2c]
fsin
fmul dword [esp + 0x1c]
call fcn.0042ff3c
mov dword [0x5790d0], eax
mov eax, dword [0x579070]
cmp eax, ebp
jne 0x41ad90
mov ecx, dword [esp + 0x38]
add ecx, esi
cmp ecx, 0x800
mov dword [esp + 0x38], ecx
jbe 0x41ad8a
mov ecx, 0x800
mov dword [esp + 0x38], ecx
add dword [0x5790d0], ecx
cmp dword [esp + 0x14], 0x3e8
jge 0x41af65
cmp eax, ebp
jbe 0x41ae82
fld dword [0x5790ac]
fcomp dword [0x439234]
fnstsw ax
test ah, 0x40
je 0x41ade9
mov eax, dword [0x5790b0]
mov ecx, dword [0x5790a8]
push 0x3f800000
push eax
push 0x3dcccccd
push ecx
push 7
mov dword [0x5790ac], 0x3dcccccd
call fcn.0040abc0
add esp, 0x14
mov dword [0x57ab48], eax
fld dword [0x5790ac]
fcomp dword [0x439420]
mov eax, 0x20
mov dword [0x579090], ebp
mov dword [0x57908c], eax
mov dword [0x579094], eax
mov dword [0x579098], ebp
fnstsw ax
test ah, 0x41
jne 0x41ae67
fld dword [esp + 0x10]
fmul dword [0x4394b8]
fsubr dword [0x5790ac]
fst dword [0x5790ac]
fcomp dword [0x439420]
fnstsw ax
test ah, 1
je 0x41ae44
mov dword [0x5790ac], 0x3c03126f
mov edx, dword [0x5790b0]
mov eax, dword [0x5790ac]
mov ecx, dword [0x5790a8]
push edx
mov edx, dword [0x57ab48]
push eax
push ecx
push edx
call fcn.0040ac40
add esp, 0x10
mov eax, dword [esp + 0x14]
mov dword [0x5790f8], 0x3b727bb3
cmp eax, ebp
jl 0x41b5da
jmp 0x41b029
cmp dword [esp + 0x58], ebp
je 0x41aea0
push 0x18
call fcn.0040ab20
push 0x399d4952
call fcn.0040af30
add esp, 8
mov dword [esp + 0x58], ebp
fld dword [esp + 0x10]
fmul dword [0x439368]
fadd dword [esp + 0x20]
fst dword [esp + 0x20]
fcomp dword [0x439230]
fnstsw ax
test ah, 0x41
jne 0x41aecd
fld dword [esp + 0x20]
fsub dword [0x439230]
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
fmul dword [0x439294]
fadd dword [esp + 0x18]
fst dword [esp + 0x18]
fcomp dword [0x439498]
fnstsw ax
test ah, 0x41
jne 0x41aef4
mov dword [esp + 0x18], 0xbcf5c28f
fld dword [esp + 0x18]
fmul dword [0x4394b4]
cmp dword [esp + 0x14], ebp
fsubr dword [0x4394b0]
fstp dword [esp + 0x34]
jge 0x41af4e
cmp dword [esp + 0x54], ebp
jne 0x41af34
call fcn.004090d0
mov eax, dword [0x5b2ed0]
mov dword [esp + 0x54], 1
cmp eax, ebp
je 0x41af34
push 0x1f
call fcn.0040ab20
add esp, 4
cmp dword [0x447c28], ebp
je 0x41af41
call fcn.004089c0
call fcn.00409100
test eax, eax
jne 0x41b633
cmp dword [esp + 0x14], 0xffff15a0
jl 0x41b628
mov edi, dword [esp + 0x34]
jmp 0x41b029
cmp dword [esp + 0x24], ebp
je 0x41b029
fld dword [esp + 0x10]
fmul dword [esp + 0x4c]
mov eax, dword [0x540fc4]
mov dword [0x541014], eax
fadd dword [0x5790a8]
fstp dword [0x5790a8]
fld dword [esp + 0x10]
fmul dword [esp + 0x50]
fadd dword [0x5790b0]
fstp dword [0x5790b0]
fld dword [0x4394c4]
fsub dword [0x5790a8]
fmul dword [esp + 0x4c]
fcomp dword [0x439224]
fnstsw ax
test ah, 1
je 0x41afc8
mov dword [0x5790a8], 0x3f006667
fld dword [0x4394bc]
fsub dword [0x5790b0]
fmul dword [esp + 0x50]
fcomp dword [0x439224]
fnstsw ax
test ah, 1
je 0x41afef
mov dword [0x5790b0], 0x3ecd999a
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebp
fild qword [esp + 0x70]
fld st(0)
fmul dword [0x439364]
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld st(0)
fmul dword [0x4394ac]
fsubr dword [esp + 0x40]
fstp dword [esp + 0x40]
fmul dword [0x439458]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [0x5790a8]
fsub dword [0x439394]
push ebx
fmul dword [0x439234]
fadd dword [0x43939c]
fstp dword [0x5790b8]
fld dword [0x5790b0]
fsub dword [0x439394]
fmul dword [0x439234]
fadd dword [0x439464]
fstp dword [0x5790c0]
call fcn.00417170
push ebx
call fcn.00414e40
mov eax, dword [esp + 0x2c]
add esp, 8
cmp eax, ebp
je 0x41b0a6
mov ecx, dword [0x545938]
cmp ecx, ebp
jbe 0x41b0af
fld dword [esp + 0x10]
fmul dword [0x439400]
mov eax, 0x548f58
fld st(0)
fadd dword [eax]
add eax, 0x1c
dec ecx
fstp dword [eax - 0x1c]
jne 0x41b095
fstp st(0)
jmp 0x41b0af
push esi
call fcn.00415680
add esp, 4
push ebx
call fcn.004166e0
push ebx
call fcn.0041e3c0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebp
fild qword [esp + 0x80]
add esp, 8
fst dword [esp + 0x28]
fmul dword [0x4392a0]
fst dword [0x5790e8]
fst dword [0x5790e4]
fcomp dword [0x43922c]
fnstsw ax
test ah, 0x41
jne 0x41b100
mov dword [0x5790e4], 0x3fc90fdb
mov ecx, dword [0x5790e4]
push ecx
call fcn.0041f040
fild dword [0x5790d4]
add esp, 4
fmul dword [0x43943c]
fadd dword [0x439458]
fmul dword [esp + 0x28]
fadd dword [0x5790f4]
fst dword [0x5790f4]
fcomp dword [0x439230]
fnstsw ax
test ah, 0x41
jne 0x41b150
fld dword [0x5790f4]
fsub dword [0x439230]
fstp dword [0x5790f4]
push edi
push edi
push 0x437f0000
call fcn.0040bca0
mov edx, dword [0x5790d0]
mov eax, dword [0x579148]
mov ecx, dword [0x5790cc]
add esp, 0xc
fld dword [0x579134]
fadd dword [0x5790c0]
add eax, edx
mov edx, dword [0x5790c8]
push eax
push ecx
push edx
push ecx
mov eax, dword [0x5790b8]
fstp dword [esp]
fld dword [0x579134]
fmul dword [0x439454]
push ecx
fsubr dword [0x5790bc]
fstp dword [esp]
push eax
call fcn.0040bd30
fld dword [0x579134]
fadd dword [0x5790c0]
add esp, 0x14
fstp dword [esp]
fld dword [0x579134]
fmul dword [0x439454]
push ecx
mov ecx, dword [0x5790b8]
fsubr dword [0x5790bc]
fstp dword [esp]
push ecx
call fcn.0040a290
add esp, 0xc
call fcn.00405c40
test eax, eax
je 0x41a9c3
call fcn.00418010
fld dword [0x579134]
fadd dword [0x5790c0]
push ebx
push ecx
mov edx, dword [0x5790b8]
fstp dword [esp]
fld dword [0x579134]
fmul dword [0x439454]
push ecx
fsubr dword [0x5790bc]
fstp dword [esp]
push edx
call fcn.0041e850
fld dword [esp + 0x28]
fcomp dword [0x4394a8]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x41b2f6
push 0x437f0000
push 0x437f0000
push 0x437f0000
call fcn.0040bca0
push ebp
push 0xfffffe02
push ebp
push ebp
push ebp
push ebp
call fcn.0040bd30
mov eax, dword [esp + 0x44]
mov ecx, dword [0x57ac08]
push eax
push ecx
call fcn.00401240
mov edx, dword [0x57ac08]
push edx
call fcn.00401570
mov eax, dword [esp + 0x48]
mov ecx, dword [0x57ac30]
push 0x3b449ba6
push eax
push ebp
push ecx
call fcn.0040be30
mov edx, dword [0x5790d0]
mov eax, dword [0x579148]
mov ecx, dword [0x5790cc]
add esp, 0x40
fld dword [0x579134]
fadd dword [0x5790c0]
add eax, edx
mov edx, dword [0x5790c8]
push eax
push ecx
push edx
push ecx
mov eax, dword [0x5790b8]
fstp dword [esp]
fld dword [0x579134]
fmul dword [0x439454]
push ecx
fsubr dword [0x5790bc]
fstp dword [esp]
push eax
call fcn.0040bd30
push edi
push edi
push 0x437f0000
call fcn.0040bca0
add esp, 0x24
push 1
call fcn.004056e0
mov ecx, dword [0x5790f8]
mov edx, dword [0x5790f4]
mov eax, dword [0x5790b0]
push ecx
mov ecx, dword [0x5790ac]
push edx
mov edx, dword [0x5790a8]
push eax
push ecx
push edx
call fcn.0041ef40
push ebx
call fcn.004145c0
add esp, 0x1c
mov edi, 0x57ec3c
mov esi, 0x545860
cmp dword [esi], 0x3dd70a3d
je 0x41b35e
fld dword [esi]
mov eax, dword [esi + 4]
mov edx, dword [edi]
fadd dword [0x439458]
push eax
push ecx
mov ecx, dword [esi - 4]
fstp dword [esp]
push ecx
push edx
call fcn.0040be30
add esp, 0x10
add esi, 0x18
add edi, 4
cmp esi, 0x5458f0
jl 0x41b337
mov eax, dword [0x545938]
xor edi, edi
cmp eax, ebp
jbe 0x41b3ac
mov esi, 0x548f58
fld dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [0x57ac14]
fadd dword [0x439440]
push eax
push ecx
mov ecx, dword [esi + 4]
fstp dword [esp]
push ecx
push edx
call fcn.0040be30
mov eax, dword [0x545938]
add esp, 0x10
inc edi
add esi, 0x1c
cmp edi, eax
jb 0x41b37c
mov eax, dword [0x549028]
mov dword [esp + 0x28], ebp
cmp eax, ebp
jbe 0x41b45c
mov ebp, 0x579a58
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov ecx, 0xa
mov esi, ebp
lea edi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
neg eax
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00401380
mov edx, dword [ebp - 0x10]
lea eax, [esp + 0x90]
push edx
push eax
call fcn.00401400
mov ecx, dword [ebp - 0x14]
lea edx, [esp + 0x98]
push ecx
push edx
call fcn.00401380
mov ecx, dword [ebx*4 + 0x57abd0]
lea eax, [esp + 0xa0]
push eax
push ecx
call fcn.00401610
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebx*4 + 0x57eda0]
push edx
push 0x3ba3d70a
push eax
push ecx
call fcn.0040be30
mov eax, dword [esp + 0x58]
mov ecx, dword [0x549028]
add esp, 0x30
inc eax
add ebp, 0x50
cmp eax, ecx
mov dword [esp + 0x28], eax
jb 0x41b3c2
mov ebx, dword [esp + 0x5c]
xor ebp, ebp
cmp dword [0x44c1e4], ebp
je 0x41b508
push 1
call fcn.00405720
mov edx, dword [0x5790c0]
mov eax, dword [0x5790bc]
mov ecx, dword [0x5790b8]
push edx
push eax
push ecx
call fcn.00405270
mov eax, dword [0x549028]
add esp, 0x10
xor edi, edi
cmp eax, ebp
jbe 0x41b4c1
mov esi, 0x579a50
mov edx, dword [esi + 4]
mov eax, dword [esi]
push 0x3bb43958
push edx
push 0x3ba3d70a
push eax
call fcn.00405290
mov eax, dword [0x549028]
add esp, 0x10
inc edi
add esi, 0x50
cmp edi, eax
jb 0x41b49b
mov eax, dword [0x545938]
xor edi, edi
cmp eax, ebp
jbe 0x41b4ff
mov esi, 0x548f58
fld dword [esi]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
fadd dword [0x439440]
push 0x3b449ba6
push ecx
push ecx
fstp dword [esp]
push edx
call fcn.00405290
mov eax, dword [0x545938]
add esp, 0x10
inc edi
add esi, 0x1c
cmp edi, eax
jb 0x41b4d1
push ebp
call fcn.00405720
add esp, 4
cmp dword [esp + 0x24], ebp
je 0x41b555
push ebx
call fcn.00416e10
fld dword [esp + 0x34]
fcos
mov eax, dword [esp + 0x40]
fsub dword [0x43923c]
fmul dword [0x4392d8]
fadd dword [esp + 0x44]
fstp dword [esp]
fld dword [esp + 0x34]
fsin
push eax
push ecx
mov ecx, dword [0x580028]
fmul dword [0x4392d8]
fadd dword [esp + 0x70]
fstp dword [esp]
push ecx
call fcn.0040be30
add esp, 0x10
push ebx
call fcn.004161a0
push ebx
call fcn.00416430
push ebx
call fcn.00416c90
push ebx
call fcn.004141d0
push ebx
call fcn.00413c70
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a730
push ebp
call fcn.004056b0
mov eax, dword [0x549028]
add esp, 0x1c
xor edi, edi
cmp eax, ebp
jbe 0x41b5d0
mov esi, 0x579a50
fld dword [0x538f60]
fmul dword [0x4392bc]
push ecx
fadd dword [esi + 4]
fstp dword [esp]
fld dword [0x538f58]
fmul dword [0x4392bc]
push ecx
fadd dword [esi]
fstp dword [esp]
call fcn.00420fe0
mov eax, dword [0x549028]
add esp, 8
inc edi
add esi, 0x50
cmp edi, eax
jb 0x41b596
call fcn.00405cd0
jmp 0x41a9bf
mov eax, dword [0x540fc0]
mov ecx, dword [0x5790b0]
mov edx, dword [0x5790ac]
mov dword [0x541014], eax
mov eax, dword [0x5790a8]
push 0x3f800000
push ecx
push edx
push eax
push 9
call fcn.0040ab60
mov ecx, dword [0x57ab48]
push ecx
call fcn.0040ac70
add esp, 0x18
call fcn.004155c0
mov dword [0x579118], ebp
mov dword [0x545920], 0x3f800000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
push 0x16
call fcn.0040ab20
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret