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

Disassembly:
sub esp, 0x60
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push ebx
push ebp
push esi
push edi
push eax
push ecx
call fcn.0044eeb0
mov edx, dword [0x4b603c]
mov ebp, eax
mov eax, dword [0x4b6038]
push edx
push eax
call fcn.0044eeb0
mov edx, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x2c]
push edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
call fcn.00418f00
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x94]
push eax
call fcn.00418f00
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x58], eax
mov eax, esi
add esp, 0x18
fld dword [esp + 0x88]
and eax, 0xf800
fmul dword [0x49f4e8]
mov dword [esp + 0x64], eax
mov eax, esi
and eax, 0x7e0
mov dword [esp + 0x68], eax
mov eax, esi
and eax, 0x1f
mov dword [esp + 0x6c], eax
call fcn.004922ac
fld dword [esp + 0x84]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x50], ebx
jge 0x469fef
fadd dword [0x49f4c4]
neg ebx
mov dword [esp + 0x50], ebx
fld dword [esp + 0x8c]
fmul dword [0x49f4e8]
call fcn.004922ac
test eax, eax
mov dword [esp + 0x30], eax
jge 0x46a015
fadd dword [0x49f4c4]
neg eax
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x46aa47
test eax, eax
je 0x46aa47
fcom dword [0x49f2e4]
fnstsw ax
test ah, 1
je 0x46a063
fld st(0)
fmul dword [0x49f4e4]
call fcn.004922ac
mov ecx, eax
mov edx, 0x168
neg ecx
shl ecx, 2
sub ecx, eax
lea ecx, [ecx + ecx*8]
shl ecx, 3
sub edx, ecx
mov dword [esp + 0x84], edx
fiadd dword [esp + 0x84]
fmul dword [0x49f4e0]
call fcn.004922ac
cdq
mov ecx, 0xb40
idiv ecx
mov edi, edx
test edi, edi
jne 0x46a0d3
fld dword [esp + 0x8c]
fmul dword [esp + 0x94]
push esi
push ecx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
fstp dword [esp]
fld dword [esp + 0x90]
fmul dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x84]
fchs
fstp dword [esp]
push edx
mov edx, dword [esp + 0x84]
push eax
push ecx
push edx
call fcn.00453af0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
cmp edi, 0x5a0
jne 0x46a132
fld dword [esp + 0x8c]
fmul dword [esp + 0x94]
push esi
push ecx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
fchs
fstp dword [esp]
fld dword [esp + 0x90]
fmul dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x88]
fstp dword [esp]
push eax
mov eax, dword [esp + 0x84]
push ecx
push edx
push eax
call fcn.00453af0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
mov dword [esp + 0x2c], eax
lea eax, [edi + 0x2d0]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov ecx, 0xb40
cdq
idiv ecx
mov eax, dword [0x4b5510]
mov esi, dword [ebp + 8]
mov ecx, dword [eax + edx*4]
mov eax, edi
mov dword [esp + 0x84], ecx
mov ecx, 0xb40
cdq
fild dword [esp + 0x84]
idiv ecx
fst dword [esp + 0x48]
fmul dword [0x49f4dc]
fstp dword [esp + 0x7c]
mov eax, dword [0x4b5510]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x84]
shl eax, 0x10
cdq
idiv ebx
mov dword [esp + 0x98], ecx
fild dword [esp + 0x98]
fst dword [esp + 0x44]
fmul dword [0x49f4dc]
fstp dword [esp + 0x80]
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fdiv dword [esp + 0x90]
call fcn.004922ac
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
shl eax, 0x10
cdq
idiv dword [esp + 0x30]
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fdiv dword [esp + 0x90]
call fcn.004922ac
cmp edi, 0x2d0
mov dword [esp + 0x38], eax
jge 0x46a296
mov eax, dword [esp + 0x2c]
mov edx, esi
neg edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x28]
fild dword [esp + 0x84]
mov ecx, eax
sub edx, esi
neg ecx
fst dword [esp + 0x14]
mov dword [esp + 0x84], ecx
dec edx
fild dword [esp + 0x84]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x24]
sub edx, eax
mov eax, dword [esp + 0x14]
fst dword [esp + 0x84]
fild dword [esp + 0x98]
dec edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x98], edx
fst dword [esp + 0x18]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x1c]
fild dword [esp + 0x98]
mov dword [esp + 0x10], ecx
fst dword [esp + 0x98]
jmp 0x46a43c
cmp edi, 0x5a0
jge 0x46a323
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub ecx, esi
mov edx, eax
dec ecx
mov dword [esp + 0x84], ecx
fild dword [esp + 0x84]
neg edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x24]
fst dword [esp + 0x18]
fild dword [esp + 0x84]
sub edx, eax
mov eax, esi
dec edx
mov ecx, dword [esp + 0x18]
fst dword [esp + 0x84]
mov dword [esp + 0x98], edx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x98]
neg eax
mov dword [esp + 0x98], eax
fst dword [esp + 0x1c]
fild dword [esp + 0x98]
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [esp + 0x98]
jmp 0x46a438
cmp edi, 0x870
jge 0x46a3b2
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
sub edx, esi
dec edx
sub ecx, eax
mov dword [esp + 0x84], edx
dec ecx
fild dword [esp + 0x84]
mov dword [esp + 0x84], ecx
mov edx, esi
neg edx
fst dword [esp + 0x18]
fild dword [esp + 0x84]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x18]
neg eax
fst dword [esp + 0x84]
fild dword [esp + 0x98]
mov dword [esp + 0x98], eax
fst dword [esp + 0x14]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
fstp dword [esp + 0x1c]
fild dword [esp + 0x98]
mov dword [esp + 0x10], ecx
fst dword [esp + 0x98]
jmp 0x46a43c
cmp edi, 0xb40
jge 0x46aa49
mov ecx, dword [esp + 0x24]
mov eax, esi
neg eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x84]
sub ecx, eax
dec ecx
fst dword [esp + 0x14]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x14]
fild dword [esp + 0x84]
neg eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x28]
fst dword [esp + 0x84]
fild dword [esp + 0x98]
sub eax, esi
mov dword [esp + 0x20], edx
dec eax
fst dword [esp + 0x1c]
mov dword [esp + 0x98], eax
fild dword [esp + 0x98]
fst dword [esp + 0x18]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x98]
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x18]
push ecx
fmul dword [esp + 0x8c]
fstp dword [esp + 0x40]
fld dword [esp + 0x88]
fmul dword [esp + 0x90]
fstp dword [esp + 0x88]
fld dword [esp + 0x24]
fmul dword [esp + 0x8c]
fstp dword [esp + 0x24]
fld dword [esp + 0x20]
fmul dword [esp + 0x90]
fstp dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [esp + 0x8c]
fstp dword [esp + 0x14]
fld dword [esp + 0x9c]
fmul dword [esp + 0x90]
fstp dword [esp + 0x9c]
fld dword [esp + 0x88]
fmul dword [esp + 0x80]
fld dword [esp + 0x40]
fmul dword [esp + 0x84]
fsubp st(1)
fmul dword [esp + 0x98]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x9c]
fmul dword [esp + 0x80]
fld dword [esp + 0x14]
fmul dword [esp + 0x84]
mov edi, eax
mov dword [esp + 0x58], edi
fsubp st(1)
fmul dword [esp + 0x98]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x20]
fmul dword [esp + 0x80]
fld dword [esp + 0x24]
fmul dword [esp + 0x84]
mov dword [esp + 0x50], eax
fsubp st(1)
fmul dword [esp + 0x98]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x1c]
fmul dword [esp + 0x90]
mov ebx, eax
fmul dword [esp + 0x80]
fld dword [esp + 0x18]
fmul dword [esp + 0x8c]
fmul dword [esp + 0x84]
fsubp st(1)
fmul dword [esp + 0x98]
fstp dword [esp]
call fcn.00418f00
mov dword [esp + 0x1c], eax
mov eax, ebx
add esp, 4
sub eax, edi
mov dword [esp + 0x8c], eax
je 0x46a647
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x88], eax
je 0x46a647
fld dword [esp + 0x1c]
fmul dword [esp + 0x80]
fld dword [esp + 0x20]
fmul dword [esp + 0x7c]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [esp + 0x80]
fld dword [esp + 0x3c]
fmul dword [esp + 0x7c]
faddp st(1)
fsubr st(1)
fmul dword [esp + 0x90]
fmul dword [0x49f4c8]
fidiv dword [esp + 0x8c]
call fcn.004922ac
test eax, eax
mov dword [esp + 0x20], eax
jge 0x46a5e2
neg eax
mov dword [esp + 0x20], eax
fld dword [esp + 0x98]
fmul dword [esp + 0x80]
fld dword [esp + 0x10]
fmul dword [esp + 0x7c]
faddp st(1)
fsub st(1)
fmul dword [esp + 0x90]
fmul dword [0x49f4c8]
fidiv dword [esp + 0x88]
call fcn.004922ac
mov edi, eax
test edi, edi
mov dword [esp + 0x1c], edi
jge 0x46a625
neg edi
mov dword [esp + 0x1c], edi
fmul dword [esp + 0x90]
fmul dword [0x49f4c8]
call fcn.004922ac
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
jmp 0x46a6b3
fld dword [esp + 0x84]
fmul dword [esp + 0x80]
fld dword [esp + 0x3c]
fmul dword [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
faddp st(1)
fmul dword [esp + 0x90]
fmul dword [0x49f4c8]
call fcn.004922ac
fld dword [esp + 0x98]
fmul dword [esp + 0x80]
fld dword [esp + 0x10]
fmul dword [esp + 0x7c]
mov dword [esp + 0x8c], eax
faddp st(1)
fmul dword [esp + 0x90]
fmul dword [0x49f4c8]
call fcn.004922ac
mov dword [esp + 0x88], eax
mov ecx, dword [0x4b6c44]
mov edx, dword [esp + 0x40]
sub ecx, edx
cmp ebx, ecx
jge 0x46a6f9
mov edx, dword [esp + 0x8c]
cmp ebx, dword [esp + 0x54]
jge 0x46a6d6
sub edx, dword [esp + 0x20]
jmp 0x46a6d8
add edx, edi
cmp ebx, dword [esp + 0x4c]
jge 0x46a6e2
add eax, edi
jmp 0x46a6e6
sub eax, dword [esp + 0x20]
inc ebx
cmp ebx, ecx
jl 0x46a6ca
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov eax, dword [0x4b6c48]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
sub eax, edx
cmp ecx, eax
jle 0x46a710
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
push edx
push edi
call fcn.0044f420
add esp, 8
mov dword [esp + 0x84], eax
test eax, eax
je 0x46aa49
mov eax, dword [0x4b603c]
mov ecx, dword [0x4b6038]
push eax
push ecx
call fcn.0044f370
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x14]
add esp, 8
test eax, eax
jne 0x46a760
mov edx, dword [ebp + 0x30]
push edx
push edi
call fcn.0044f010
add esp, 8
jmp 0x46a769
push eax
call fcn.004483c0
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], ebx
cmp ebx, eax
jg 0x46aa2f
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x50]
shl eax, 0x10
fild dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
add ebx, eax
shl esi, 0x10
shl ebx, 2
mov dword [esp + 0x98], esi
mov dword [esp + 0x7c], ebx
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x88]
mov eax, dword [0x4b6c3c]
sar esi, 0x10
mov ecx, ebp
mov dword [esp + 0x78], esi
sub ecx, esi
sar edi, 0x10
cmp ecx, eax
jle 0x46a7d7
mov esi, ebp
sub esi, eax
mov dword [esp + 0x78], esi
mov eax, dword [0x4b6c38]
mov edx, ebp
sub edx, edi
cmp edx, eax
jge 0x46a7e8
mov edi, ebp
sub edi, eax
fild dword [esp + 0x78]
fdiv dword [esp + 0x90]
fild dword [esp + 0x80]
fdiv dword [esp + 0x94]
fld st(1)
fmul dword [esp + 0x48]
fld st(1)
fmul dword [esp + 0x44]
fsubp st(1)
fmul dword [0x49f4d8]
fdiv st(4)
call fcn.004922ac
fxch st(1)
fmul dword [esp + 0x44]
fxch st(1)
fmul dword [esp + 0x48]
mov ebx, dword [esp + 0x98]
sub ebx, eax
faddp st(1)
fmul dword [0x49f4d8]
fdiv st(1)
call fcn.004922ac
mov edx, dword [esp + 0x50]
sub ebp, esi
sub edx, eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x7c]
mov ecx, dword [ecx + eax]
lea eax, [ecx + ebp*2]
mov ebp, dword [esp + 0x3c]
add eax, ebp
mov dword [esp + 0x78], eax
mov eax, edi
sub eax, esi
lea ecx, [eax + 1]
mov eax, ecx
imul ecx, dword [esp + 0x38]
imul eax, dword [esp + 0x34]
add eax, ebx
add ecx, edx
cmp edi, esi
mov dword [esp + 0x74], ecx
jl 0x46a8c8
mov ebp, dword [esp + 0x24]
sar ecx, 0x10
cmp ecx, ebp
jge 0x46a8af
mov ebp, dword [esp + 0x28]
mov ecx, eax
sar ecx, 0x10
cmp ecx, ebp
jge 0x46a8af
test dword [esp + 0x74], 0xffff0000
jl 0x46a8af
test eax, 0xffff0000
jge 0x46a975
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esp + 0x74]
sub ecx, ebp
dec edi
cmp edi, esi
mov dword [esp + 0x74], ecx
jge 0x46a882
mov ebp, dword [esp + 0x78]
sub edi, esi
inc edi
test edi, edi
jle 0x46a950
mov dword [esp + 0x78], edi
mov esi, dword [esp + 0x60]
mov eax, edx
sar eax, 0x10
mov ecx, ebx
mov eax, dword [esi + eax*4]
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x84]
cmp byte [eax + ecx], 0
je 0x46a936
mov esi, dword [esp + 0x64]
xor eax, eax
mov ax, word [ebp]
mov ecx, eax
and ecx, 0xf800
sub ecx, esi
jns 0x46a90f
xor ecx, ecx
mov edi, dword [esp + 0x68]
mov esi, eax
and esi, 0x7e0
sub esi, edi
jns 0x46a921
xor esi, esi
mov edi, dword [esp + 0x6c]
and eax, 0x1f
sub eax, edi
jns 0x46a92e
xor eax, eax
or eax, esi
or eax, ecx
mov word [ebp], ax
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
add ebx, edi
add edx, esi
sub ebp, 2
dec eax
mov dword [esp + 0x78], eax
jne 0x46a8d7
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jge 0x46a9c8
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
sub ecx, edx
mov dword [esp + 0x8c], ecx
jmp 0x46a9dc
mov ebp, dword [esp + 0x78]
cmp esi, edi
jg 0x46a8cc
mov ecx, dword [esp + 0x24]
mov eax, edx
sar eax, 0x10
cmp eax, ecx
jge 0x46a9af
mov eax, dword [esp + 0x28]
mov ecx, ebx
sar ecx, 0x10
cmp ecx, eax
jge 0x46a9af
test edx, 0xffff0000
jl 0x46a9af
test ebx, 0xffff0000
jge 0x46a8cc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add ebx, eax
add edx, ecx
sub ebp, 2
inc esi
cmp esi, edi
jle 0x46a981
jmp 0x46a8cc
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x8c]
add edx, ecx
mov dword [esp + 0x8c], edx
cmp eax, dword [esp + 0x4c]
jge 0x46a9f8
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add ecx, edx
mov dword [esp + 0x88], ecx
jmp 0x46aa0c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x88]
sub edx, ecx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x18]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], edx
jle 0x46a7a6
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x84]
push edx
call fcn.0044f4d0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret