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

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
fild dword [eax + 0x5ac]
mov ebp, dword [esp + 0x70]
fdivr dword [0x54fb34]
fimul dword [esp + 0x6c]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x29c]
test ecx, ecx
je 0x4229a8
test ebp, ebp
jne 0x4229a8
fld dword [esp + 0x10]
fmul dword [0x54fb3c]
fstp dword [esp + 0x10]
mov eax, dword [edi + 0x68]
test eax, eax
je 0x422a27
mov eax, dword [edi + 0x19c]
xor esi, esi
test eax, eax
jle 0x4229ef
mov ebx, dword [esp + 0x6c]
nop
test esi, esi
jl 0x4238e6
cmp esi, dword [edi + 0x19c]
jge 0x4238e6
mov edx, dword [edi + 0x198]
mov ecx, dword [edx + esi*4]
push ebp
push ebx
call fcn.00422960
mov eax, dword [edi + 0x19c]
inc esi
cmp esi, eax
jl 0x4229c0
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x4238f5
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0x298]
test eax, eax
jne 0x4238f5
mov eax, dword [edi + 0x68]
test eax, eax
mov ecx, edi
jne 0x4238eb
mov edx, dword [esp + 0x38]
push edx
call fcn.0041d530
jmp 0x4238f5
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x422dc9
fld dword [edi + 0x80]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jne 0x422dae
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x190]
test eax, eax
mov dword [edi + 0x14], ecx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
je 0x422aed
mov ecx, dword [eax + 0x50]
xor esi, esi
test ecx, ecx
jle 0x422aed
jmp 0x422a80
mov eax, dword [edi + 0x190]
add eax, 0x48
test esi, esi
jl 0x4238e6
cmp esi, dword [eax + 8]
jge 0x4238e6
mov edx, dword [eax + 4]
mov ecx, dword [edx + esi*4]
lea eax, [esp + 0x20]
push eax
mov eax, dword [edi + 0xc]
lea edx, [esp + 0x28]
push edx
mov edx, dword [edi + 8]
push eax
push edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
call fcn.00452760
fld dword [esp + 0x24]
fadd dword [esp + 0x6c]
mov eax, dword [edi + 0x190]
mov ecx, dword [eax + 0x50]
inc esi
cmp esi, ecx
fstp dword [esp + 0x6c]
fld dword [esp + 0x20]
fadd dword [esp + 0x70]
fstp dword [esp + 0x70]
jl 0x422a80
fld dword [esp + 0x6c]
mov eax, dword [edi + 0x190]
fadd dword [edi + 0x98]
xor esi, esi
cmp eax, esi
fstp dword [edi + 0x98]
fld dword [esp + 0x70]
fadd dword [edi + 0x9c]
fstp dword [edi + 0x9c]
fld dword [esp + 0x10]
fmul dword [edi + 0x78]
fadd dword [edi + 8]
fstp dword [edi + 8]
fld dword [esp + 0x10]
fmul dword [edi + 0x74]
fadd dword [edi + 0xc]
fstp dword [edi + 0xc]
je 0x422b8c
cmp dword [edi + 0x120], esi
je 0x422b43
mov dword [edi + 0x120], esi
jmp 0x422b8c
cmp dword [eax + 0x28], esi
jle 0x422b8c
jmp 0x422b50
mov eax, dword [edi + 0x190]
add eax, 0x20
test esi, esi
jl 0x4238e6
cmp esi, dword [eax + 8]
jge 0x4238e6
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
mov eax, dword [eax + 4]
push ecx
mov ecx, dword [eax + esi*4]
push edx
push edi
call fcn.00413fa0
mov ecx, dword [edi + 0x190]
mov eax, dword [ecx + 0x28]
inc esi
cmp esi, eax
jl 0x422b50
mov ecx, dword [edi + 0x178]
mov edx, dword [ecx + 0x24]
xor eax, eax
test edx, edx
jle 0x422bf9
jmp 0x422ba0
test eax, eax
jl 0x4238e6
cmp eax, dword [ecx + 0x24]
jge 0x4238e6
mov edx, dword [ecx + 0x20]
mov edx, dword [edx + eax*4]
mov esi, dword [edx + 0xb4]
test esi, esi
jne 0x422bd1
mov edx, dword [edi + 0x178]
mov esi, dword [edx + 0x24]
inc eax
cmp eax, esi
jl 0x422ba0
jmp 0x422bf9
fld dword [edi + 0x80]
xor ecx, ecx
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x422be9
mov ecx, 1
mov eax, dword [edi + 0x14]
push ecx
mov ecx, dword [edi + 0x10]
push eax
push ecx
mov ecx, edi
call fcn.0041d320
fld dword [edi + 0x80]
fsub dword [esp + 0x10]
fst dword [edi + 0x80]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jp 0x422c36
mov eax, dword [edi + 0x70]
dec dword [eax + 0x124]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jge 0x422c36
mov dword [eax + 0x124], 0
mov ecx, edi
call fcn.0041d0b0
fld dword [edi + 0xd8]
fmul dword [edi + 0x98]
mov edx, dword [edi + 0x88]
mov eax, dword [edi + 0x8c]
mov dword [edi + 0xfc], eax
fstp dword [edi + 0x78]
mov dword [edi + 0xf8], edx
fld dword [edi + 0xd8]
fmul dword [edi + 0x9c]
fstp dword [edi + 0x74]
fld dword [edi + 0xd0]
fmul dword [edi + 0x90]
fstp dword [edi + 0x88]
fld dword [edi + 0xd4]
fmul dword [edi + 0x94]
fstp dword [edi + 0x8c]
fld dword [edi + 0xdc]
fmul dword [edi + 0xa0]
fst dword [edi + 0xc0]
fld dword [edi + 0xe8]
fmul dword [edi + 0xa4]
fstp dword [edi + 0x84]
fld dword [edi + 0xe4]
fmul dword [edi + 0xac]
fstp dword [edi + 0xc8]
fld dword [edi + 0xe0]
fmul dword [edi + 0xa8]
fst dword [esp + 0x6c]
fstp dword [edi + 0xc4]
fld dword [edi + 0xec]
fmul dword [edi + 0xb4]
fstp dword [edi + 0xb0]
fld dword [edi + 0xcc]
fmul dword [edi + 0xbc]
fstp dword [edi + 0xb8]
fmul dword [esp + 0x10]
fmul dword [0x550ea0]
fadd dword [edi + 0x9c]
fstp dword [edi + 0x9c]
fld dword [esp + 0x6c]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jne 0x422d9e
fld dword [esp + 0x6c]
fmul dword [0x54fb3c]
fstp dword [esp + 0x70]
call fcn.004eacb2
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul dword [edi + 0xc4]
fmul dword [0x550ea8]
fsubr dword [esp + 0x70]
fadd dword [edi + 0x98]
fstp dword [edi + 0x98]
fld dword [edi + 0xc4]
fmul dword [0x54fb3c]
fstp dword [esp + 0x70]
call fcn.004eacb2
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul dword [edi + 0xc4]
fmul dword [0x550ea8]
fsubr dword [esp + 0x70]
fadd dword [edi + 0x9c]
fstp dword [edi + 0x9c]
fld dword [esp + 0x10]
fmul dword [edi + 0x84]
fadd dword [edi + 0x28]
fstp dword [edi + 0x28]
mov ecx, dword [edi + 0x178]
fld dword [ecx + 0xf4]
mov edx, dword [edi + 0x70]
fmul dword [edx + 0x1e4]
fstp dword [edi + 0x1e4]
mov eax, dword [edi + 0x40]
test eax, eax
mov dword [esp + 0x24], 0
jle 0x4229ef
lea esp, [esp]
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x4238e6
cmp eax, dword [edi + 0x40]
jge 0x4238e6
mov ecx, dword [edi + 0x3c]
mov esi, dword [ecx + eax*4]
fld dword [esi + 0x34]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jne 0x4238cd
mov eax, dword [esi + 0xec]
mov edx, dword [esi + 0x40]
xor ebp, ebp
cmp eax, ebp
mov dword [esi + 0xa8], edx
jne 0x422e42
cmp dword [esi + 0xe8], ebp
jne 0x422e3e
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
mov dword [esi + 0xa0], ecx
mov dword [esi + 0xa4], edx
cmp eax, ebp
je 0x422ea2
cmp dword [esi + 0xf0], ebp
jne 0x422ea2
fld dword [esi + 0x3c]
mov edx, dword [esi + 0xe4]
fsub dword [edi + 8]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x40]
fstp dword [esi + 0x3c]
push ecx
fld dword [esi + 0x38]
push ecx
fsub dword [edi + 0xc]
mov ecx, dword [esi + 0x3c]
fst dword [esp + 0x7c]
mov eax, dword [esp + 0x7c]
fstp dword [esi + 0x38]
fld dword [edx + 0xb8]
fmul dword [edi + 0x2c]
fstp dword [esp]
push eax
push ecx
call fcn.0049ba90
fld dword [esp + 0x50]
fadd dword [edi + 8]
add esp, 0x14
fstp dword [esi + 0x3c]
fld dword [esp + 0x40]
fadd dword [edi + 0xc]
fstp dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x58], eax
cmp dword [esi + 0xe8], ebp
mov dword [esp + 0x54], edx
je 0x42314c
cmp dword [edi + 0x1fc], ebp
je 0x422ecc
cmp dword [edi + 0x218], ebp
jne 0x422ed8
mov ecx, dword [edi + 8]
mov dword [esi + 0x3c], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x38], edx
mov eax, dword [edi + 0x1fc]
cmp eax, 1
jne 0x422f2b
fld dword [esi + 0x3c]
lea eax, [esp + 0x48]
fsub dword [edi + 8]
push eax
lea ecx, [esp + 0x48]
push ecx
fstp dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
fld dword [esi + 0x38]
fsub dword [edi + 0xc]
fst dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fstp dword [esi + 0x38]
mov edx, dword [edi + 0x2c]
push edx
push eax
push ecx
call fcn.0049ba90
fld dword [esp + 0x58]
fadd dword [edi + 8]
add esp, 0x14
fstp dword [esi + 0x3c]
fld dword [esp + 0x48]
jmp 0x422ffc
cmp eax, 2
jne 0x423002
mov ebx, dword [edi + 0x218]
cmp ebx, ebp
jle 0x423002
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x422f59
imul eax, eax, 0x168
cdq
idiv ebx
mov dword [esp + 0x70], eax
jmp 0x422f85
mov ecx, dword [edi + 0x144]
mov eax, ecx
imul eax, eax, 0x168
cdq
idiv ebx
mov dword [esi + 0x24], ecx
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x144]
inc eax
cdq
idiv dword [edi + 0x218]
mov dword [edi + 0x144], edx
fild dword [esp + 0x70]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x2c]
push eax
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fld dword [edi + 0x1e0]
fadd dword [0x54fb3c]
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x5c]
push edx
push eax
push eax
sub esp, 8
fstp dword [esp + 4]
fld dword [edi + 0x1dc]
fadd dword [0x54fb3c]
fstp dword [esp]
call fcn.0049ba40
mov edx, dword [edi + 0x28]
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
call fcn.0049ba90
fld dword [esp + 0x5c]
fadd dword [edi + 8]
add esp, 0x34
fstp dword [esi + 0x3c]
fld dword [esp + 0x2c]
fadd dword [edi + 0xc]
fstp dword [esi + 0x38]
mov edx, dword [esi + 0x48]
mov dword [esi + 0xac], edx
mov edx, dword [esi + 0xe4]
fld dword [edx + 4]
fadd dword [esi + 0x94]
fst dword [esi + 0x48]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x42302d
mov dword [esi + 0x48], ebp
fld dword [edi + 0x1ac]
fmul dword [edi + 0x1bc]
fmul dword [esi + 0x48]
fst dword [esi + 0x48]
mov eax, dword [edi + 0x6c]
cmp eax, ebp
je 0x42306c
mov eax, dword [edi + 0x178]
mov ecx, dword [edi + 0x70]
fld dword [eax + 0xe0]
fmul dword [ecx + 0x1ac]
fmul dword [edi + 0xb0]
fmul dword [edi + 0x88]
fmul st(1)
fstp dword [esi + 0x48]
mov eax, dword [esi + 0x48]
fstp st(0)
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x4c], eax
mov dword [esi + 0xb0], ecx
fld dword [edx + 8]
cmp dword [edx + 0x118], ebp
je 0x423090
fadd dword [esi + 0x94]
jmp 0x423096
fadd dword [esi + 0x98]
fstp dword [esi + 0x50]
fld dword [esi + 0x50]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x4230ac
mov dword [esi + 0x50], ebp
fld dword [edi + 0x1b0]
fmul dword [edi + 0x1bc]
fmul dword [esi + 0x50]
fst dword [esi + 0x50]
mov eax, dword [edi + 0x6c]
cmp eax, ebp
je 0x423113
mov ecx, dword [edi + 0x178]
fld dword [edi + 0x8c]
cmp dword [ecx + 0x18], ebp
je 0x4230de
fstp st(0)
fld dword [edi + 0x88]
mov eax, dword [edi + 0x70]
mov ebx, dword [eax + 0x178]
fld dword [eax + 0x1b0]
cmp dword [ebx + 0x18], ebp
je 0x4230fa
fstp st(0)
fld dword [eax + 0x1ac]
fld dword [ecx + 0xe0]
fmul dword [edi + 0xb0]
fmul st(1)
fmul st(2)
fmul st(3)
fstp dword [esi + 0x50]
fstp st(0)
fstp st(0)
mov eax, dword [esi + 0x50]
fstp st(0)
mov dword [esi + 0x54], eax
fld dword [edx + 0x24]
fadd dword [esi + 0x9c]
fmul dword [edi + 0x1c4]
fst dword [esi + 0x44]
mov eax, dword [edi + 0x6c]
cmp eax, ebp
je 0x42320d
mov ecx, dword [edi + 0x178]
fmul dword [ecx + 0xdc]
fstp dword [esi + 0x44]
jmp 0x42320f
mov eax, dword [edi + 0x190]
cmp eax, ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
je 0x4231dd
mov ecx, dword [eax + 0x50]
xor ebx, ebx
test ecx, ecx
jle 0x4231dd
nop
mov eax, dword [edi + 0x190]
add eax, 0x48
test ebx, ebx
jl 0x4238e6
cmp ebx, dword [eax + 8]
jge 0x4238e6
mov edx, dword [eax + 4]
mov ecx, dword [edx + ebx*4]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esi + 0x38]
lea edx, [esp + 0x34]
push edx
mov edx, dword [esi + 0x3c]
push eax
push edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
call fcn.00452760
fld dword [esp + 0x30]
fadd dword [esp + 0x14]
mov eax, dword [edi + 0x190]
mov ecx, dword [eax + 0x50]
inc ebx
cmp ebx, ecx
fstp dword [esp + 0x14]
fld dword [esp + 0x34]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
jl 0x423170
fld dword [esp + 0x10]
fmul dword [esi + 0x2c]
fadd dword [esi + 0x3c]
fstp dword [esi + 0x3c]
fld dword [esp + 0x10]
fmul dword [esi + 0x28]
fadd dword [esi + 0x38]
fstp dword [esi + 0x38]
fld dword [esp + 0x14]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
fld dword [esp + 0x18]
fadd dword [esi + 0x5c]
fstp dword [esi + 0x5c]
jmp 0x42320f
fstp st(0)
mov eax, dword [edi + 0x190]
test eax, eax
je 0x42327a
mov ecx, dword [esi + 0xf4]
xor ebx, ebx
cmp ecx, ebx
je 0x42322d
mov dword [esi + 0xf4], ebx
jmp 0x42327a
cmp dword [eax + 0x28], ebx
jle 0x42327a
mov ebp, dword [esp + 0x54]
jmp 0x423240
mov eax, dword [edi + 0x190]
add eax, 0x20
test ebx, ebx
jl 0x4238e6
cmp ebx, dword [eax + 8]
jge 0x4238e6
mov ecx, dword [esp + 0x58]
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [edx + ebx*4]
push ebp
push esi
call fcn.00413ac0
mov eax, dword [edi + 0x190]
mov ecx, dword [eax + 0x28]
inc ebx
cmp ebx, ecx
jl 0x423240
fld dword [esi + 0x34]
mov ecx, esi
fsub dword [esp + 0x10]
fstp dword [esi + 0x34]
call fcn.004988a0
mov eax, dword [esi + 0xec]
test eax, eax
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
je 0x4232d8
fld dword [edi + 0x28]
mov edx, dword [esi + 0xe4]
fsub dword [esi + 0x8c]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x20]
push ecx
push ecx
mov ecx, dword [esp + 0x28]
fmul dword [edx + 0xb8]
fstp dword [esp]
push eax
push ecx
call fcn.0049ba90
add esp, 0x14
fld dword [esp + 0x1c]
mov eax, dword [esi + 0xe8]
test eax, eax
fmul dword [esi + 0x78]
fstp dword [esi + 0x2c]
fld dword [esp + 0x20]
fmul dword [esi + 0x78]
fstp dword [esi + 0x28]
jne 0x423308
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x50]
mov dword [esi + 0xac], edx
mov dword [esi + 0xb0], eax
fld dword [esi + 0x70]
fmul dword [esi + 0x4c]
fstp dword [esi + 0x48]
fld dword [esi + 0x74]
fmul dword [esi + 0x54]
fstp dword [esi + 0x50]
fld dword [esi + 0x7c]
fmul dword [esi + 0x60]
fst dword [esi + 4]
fld dword [esi + 0x88]
fmul dword [esi + 0x64]
fstp dword [esi + 0x44]
fld dword [esi + 0x84]
fmul dword [esi + 0x6c]
fstp dword [esi + 0xc]
fld dword [esi + 0x80]
fmul dword [esi + 0x68]
fst dword [esp + 0x70]
fstp dword [esi + 8]
fmul dword [esp + 0x10]
fmul dword [0x550ea0]
fadd dword [esi + 0x5c]
fst dword [esi + 0x5c]
fld dword [esp + 0x70]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jne 0x42341c
mov ecx, dword [esi + 0x58]
fstp dword [esp + 0x64]
fld dword [esp + 0x70]
mov dword [esp + 0x60], ecx
fmul dword [0x54fb3c]
fstp dword [esp + 0x5c]
call fcn.004eacb2
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fmul dword [esi + 8]
fmul dword [0x550ea8]
fsubr dword [esp + 0x5c]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
fld dword [esi + 8]
fmul dword [0x54fb3c]
fstp dword [esp + 0x5c]
call fcn.004eacb2
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
mov eax, dword [esi + 0xe4]
fmul dword [esi + 8]
fmul dword [0x550ea8]
fsubr dword [esp + 0x5c]
fadd dword [esi + 0x5c]
fst dword [esi + 0x5c]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x42341c
fld dword [esi + 0x58]
fpatan
fmul qword [0x550e30]
fiadd dword [eax + 0xb0]
fsub dword [esi + 0xa8]
fabs
fcomp dword [0x550e70]
fnstsw ax
test ah, 0x41
jne 0x42341e
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], eax
jmp 0x42341e
fstp st(0)
mov eax, dword [esi + 0xe4]
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jne 0x423539
mov ecx, dword [eax + 0xf0]
test ecx, ecx
jne 0x423539
fld dword [esi + 0x34]
fcomp dword [esi + 0xd8]
fnstsw ax
test ah, 0x41
jp 0x423457
mov ecx, esi
call fcn.004989d0
movzx ecx, byte [esi + 0xbc]
fld dword [esp + 0x10]
fmul dword [esi + 0xc8]
movzx edx, byte [esi + 0xbd]
movzx eax, byte [esi + 0xbe]
mov dword [esp + 0x70], ecx
fiadd dword [esp + 0x70]
mov dword [esp + 0x70], edx
fadd dword [0x54fb3c]
fld dword [esp + 0x10]
fmul dword [esi + 0xcc]
fiadd dword [esp + 0x70]
mov dword [esp + 0x70], eax
fadd dword [0x54fb3c]
fstp dword [esp + 0x64]
fld dword [esp + 0x10]
fmul dword [esi + 0xd0]
fiadd dword [esp + 0x70]
fadd dword [0x54fb3c]
fstp dword [esp + 0x70]
call fcn.004eaa58
test eax, eax
jl 0x4234cc
cmp eax, 0xff
jge 0x4234d8
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
jmp 0x4234dd
mov ecx, 0xff
fld dword [esp + 0x64]
mov byte [esi + 0xbc], cl
call fcn.004eaa58
test eax, eax
jl 0x4234f7
cmp eax, 0xff
jge 0x423503
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
jmp 0x423508
mov ecx, 0xff
fld dword [esp + 0x70]
mov byte [esi + 0xbd], cl
call fcn.004eaa58
test eax, eax
jl 0x423522
cmp eax, 0xff
jge 0x42352e
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
jmp 0x423533
mov ecx, 0xff
mov byte [esi + 0xbe], cl
fld dword [esi + 0x34]
fcomp dword [esi + 0xdc]
fnstsw ax
test ah, 0x41
jp 0x423550
mov ecx, esi
call fcn.00498eb0
movzx ecx, byte [esi + 0xbf]
fld dword [esp + 0x10]
fmul dword [esi + 0xd4]
mov dword [esp + 0x70], ecx
fiadd dword [esp + 0x70]
fadd dword [0x54fb3c]
call fcn.004eaa58
test eax, eax
jl 0x42357f
cmp eax, 0xff
jge 0x42358b
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
jmp 0x423590
mov ecx, 0xff
mov eax, dword [esi + 0xe4]
mov byte [esi + 0xbf], cl
fld dword [eax + 0x54]
fmul dword [edi + 0x1e8]
mov ecx, dword [eax + 0xdc]
test ecx, ecx
fstp dword [esp + 0x70]
je 0x423690
mov ecx, dword [edi + 0x190]
test ecx, ecx
je 0x423690
mov edx, dword [edi + 0x50]
test edx, edx
mov eax, ecx
je 0x4235df
mov edx, dword [ecx + 0x110]
test edx, edx
jg 0x4235df
mov ecx, edi
call fcn.00417870
mov ecx, dword [esi + 0x38]
lea edx, [esp + 0x6c]
push edx
mov edx, dword [esi + 0x3c]
push ecx
push edx
mov ecx, eax
call fcn.00472fa0
fld dword [esp + 0x70]
fsubr qword [0x550eb8]
movzx ecx, byte [esi + 0xbc]
mov ebx, eax
movzx eax, bl
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
mov dword [esp + 0x64], ecx
fmul dword [esp + 0x70]
fild dword [esp + 0x64]
fmul st(2)
faddp st(1)
call fcn.004eaa58
movzx edx, bh
mov dword [esp + 0x64], edx
mov byte [esi + 0xc4], al
movzx eax, byte [esi + 0xbd]
fild dword [esp + 0x64]
mov dword [esp + 0x64], eax
fmul dword [esp + 0x70]
fild dword [esp + 0x64]
fmul st(2)
faddp st(1)
call fcn.004eaa58
movzx edx, byte [esi + 0xbe]
shr ebx, 0x10
movzx ecx, bl
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
fmul dword [esp + 0x70]
mov dword [esp + 0x70], edx
fild dword [esp + 0x70]
fmul st(2)
mov byte [esi + 0xc5], al
faddp st(1)
call fcn.004eaa58
fstp st(0)
mov byte [esi + 0xc6], al
jmp 0x42374f
mov ecx, dword [eax + 0xd8]
test ecx, ecx
je 0x42372b
movzx eax, byte [esi + 0xc0]
fld dword [esp + 0x70]
fsubr qword [0x550eb8]
movzx ecx, byte [esi + 0xbc]
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
mov dword [esp + 0x64], ecx
fmul dword [esp + 0x70]
fild dword [esp + 0x64]
fmul st(2)
faddp st(1)
call fcn.004eaa58
movzx edx, byte [esi + 0xc1]
mov dword [esp + 0x64], edx
mov byte [esi + 0xc4], al
movzx eax, byte [esi + 0xbd]
fild dword [esp + 0x64]
mov dword [esp + 0x64], eax
fmul dword [esp + 0x70]
fild dword [esp + 0x64]
fmul st(2)
faddp st(1)
call fcn.004eaa58
movzx ecx, byte [esi + 0xc2]
movzx edx, byte [esi + 0xbe]
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
fmul dword [esp + 0x70]
mov dword [esp + 0x70], edx
fild dword [esp + 0x70]
jmp 0x423674
mov al, byte [esi + 0xbc]
mov cl, byte [esi + 0xbd]
mov dl, byte [esi + 0xbe]
mov byte [esi + 0xc4], al
mov byte [esi + 0xc5], cl
mov byte [esi + 0xc6], dl
mov eax, dword [esi + 0xe4]
mov ecx, dword [eax + 0xec]
test ecx, ecx
je 0x4237c2
mov ecx, dword [edi + 0x50]
test ecx, ecx
mov eax, dword [edi + 0x190]
je 0x42377d
mov ecx, dword [eax + 0x110]
test ecx, ecx
jg 0x42377d
mov ecx, edi
call fcn.00417870
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
lea ebx, [esi + 0xc3]
push ebx
push ecx
push edx
mov ecx, eax
call fcn.00472fa0
movzx eax, byte [esi + 0xbf]
movzx ecx, byte [ebx]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
mov dword [esp + 0x70], ecx
fmul qword [0x550a18]
fild dword [esp + 0x70]
faddp st(1)
call fcn.004eaa58
mov byte [esi + 0xc7], al
jmp 0x42380b
mov ecx, dword [eax + 0xe8]
test ecx, ecx
je 0x4237ff
movzx edx, byte [esi + 0xc3]
movzx eax, byte [esi + 0xbf]
mov dword [esp + 0x70], edx
fild dword [esp + 0x70]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fmul qword [0x550a18]
faddp st(1)
call fcn.004eaa58
mov byte [esi + 0xc7], al
jmp 0x42380b
mov cl, byte [esi + 0xbf]
mov byte [esi + 0xc7], cl
mov eax, dword [esi + 0xec]
test eax, eax
je 0x42382a
mov edx, dword [esi + 0xe4]
fld dword [edx + 0xb8]
fmul dword [edi + 0x2c]
fsubr dword [esi + 0x40]
fstp dword [esi + 0x40]
mov ecx, dword [esi + 0xe8]
test ecx, ecx
je 0x42383d
fld dword [esi + 0x40]
fsub dword [edi + 0x2c]
fstp dword [esi + 0x40]
mov eax, dword [esi + 0xe4]
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x423871
test ecx, ecx
jne 0x42387e
fld dword [esi + 0x28]
fld dword [esi + 0x2c]
fpatan
fmul qword [0x550e30]
fst dword [esi + 0x40]
fild dword [eax + 0xb0]
fadd st(1)
fstp dword [esi + 0x40]
fstp st(0)
jmp 0x42387e
fld dword [esp + 0x10]
fmul dword [esi + 0x44]
fadd dword [esi + 0x40]
fstp dword [esi + 0x40]
mov ecx, dword [eax + 0x9c]
mov edx, dword [ecx + 0xc]
cmp edx, 1
jle 0x4238cd
mov ecx, dword [esi + 0xfc]
cmp ecx, 0xffffffff
je 0x4238cd
test ecx, ecx
je 0x4238a4
dec ecx
mov dword [esi + 0xfc], ecx
jmp 0x4238cd
mov eax, dword [eax + 0xbc]
mov ecx, dword [esi + 0xf8]
inc ecx
mov dword [esi + 0xfc], eax
mov eax, ecx
cmp eax, edx
mov dword [esi + 0xf8], ecx
jl 0x4238cd
mov dword [esi + 0xf8], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + 0x40]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x422de0
jmp 0x4229ef
call fcn.004fd76e
mov eax, dword [esp + 0x38]
push eax
call fcn.00421430
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 8