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

Disassembly:
sub esp, 0x58
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push ebx
push ebp
push esi
push edi
push eax
push ecx
call fcn.0044eeb0
mov edx, dword [0x4b603c]
mov ebx, eax
mov eax, dword [0x4b6038]
push edx
push eax
call fcn.0044eeb0
mov ebp, dword [esp + 0x84]
mov ecx, dword [ebx + 0x2c]
push ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
call fcn.00418f00
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x6c], eax
push edx
call fcn.00418f00
fld dword [esp + 0x98]
fmul dword [0x49f4e8]
add esp, 0x18
mov dword [esp + 0x44], eax
call fcn.004922ac
fld dword [esp + 0x7c]
mov edi, eax
test edi, edi
mov dword [esp + 0x54], edi
jge 0x461326
fadd dword [0x49f4c4]
neg edi
mov dword [esp + 0x54], edi
fld dword [esp + 0x84]
fmul dword [0x49f4e8]
call fcn.004922ac
test eax, eax
mov dword [esp + 0x34], eax
jge 0x46134c
fadd dword [0x49f4c4]
neg eax
mov dword [esp + 0x34], eax
test edi, edi
je 0x461cb6
test eax, eax
je 0x461cb6
fcom dword [0x49f2e4]
fnstsw ax
test ah, 1
je 0x461394
fld st(0)
fmul dword [0x49f4e4]
call fcn.004922ac
mov ecx, eax
neg ecx
shl ecx, 2
sub ecx, eax
lea eax, [ecx + ecx*8]
mov ecx, 0x168
shl eax, 3
sub ecx, eax
mov dword [esp + 0x7c], ecx
fiadd dword [esp + 0x7c]
fmul dword [0x49f4e0]
call fcn.004922ac
cdq
mov ecx, 0xb40
idiv ecx
mov esi, edx
test esi, esi
jne 0x4613f3
fld dword [esp + 0x84]
fmul dword [esp + 0x8c]
push ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
fstp dword [esp]
fld dword [esp + 0x84]
fmul dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x74]
fchs
fstp dword [esp]
push edx
push ebp
push eax
push ecx
call fcn.00451b30
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
cmp esi, 0x5a0
jne 0x461441
fld dword [esp + 0x84]
fmul dword [esp + 0x8c]
push ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
fchs
fstp dword [esp]
fld dword [esp + 0x84]
fmul dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x74]
fstp dword [esp]
push edx
push ebp
push eax
push ecx
call fcn.00451b30
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
lea eax, [esi + 0x2d0]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
mov ecx, 0xb40
cdq
idiv ecx
mov eax, dword [0x4b5510]
mov ebp, dword [ebx + 8]
mov ecx, dword [eax + edx*4]
mov eax, esi
mov dword [esp + 0x74], ecx
mov ecx, 0xb40
cdq
fild dword [esp + 0x74]
idiv ecx
fst dword [esp + 0x4c]
fmul dword [0x49f4dc]
fstp dword [esp + 0x7c]
mov eax, dword [0x4b5510]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x74]
shl eax, 0x10
cdq
idiv edi
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fst dword [esp + 0x48]
fmul dword [0x49f4dc]
fstp dword [esp + 0x78]
mov dword [esp + 0x74], eax
fild dword [esp + 0x74]
fdiv dword [esp + 0x88]
call fcn.004922ac
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shl eax, 0x10
cdq
idiv dword [esp + 0x34]
mov dword [esp + 0x74], eax
fild dword [esp + 0x74]
fdiv dword [esp + 0x88]
call fcn.004922ac
cmp esi, 0x2d0
mov dword [esp + 0x3c], eax
jge 0x461561
mov eax, dword [esp + 0x2c]
mov edx, ebp
neg edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x30]
fild dword [esp + 0x74]
mov ecx, eax
sub edx, ebp
neg ecx
fst dword [esp + 0x18]
mov dword [esp + 0x74], ecx
dec edx
fild dword [esp + 0x74]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x28]
sub edx, eax
mov eax, dword [esp + 0x18]
fst dword [esp + 0x74]
fild dword [esp + 0x5c]
dec edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edx
fst dword [esp + 0x1c]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
fstp dword [esp + 0x20]
fild dword [esp + 0x5c]
mov dword [esp + 0x14], ecx
fst dword [esp + 0x10]
jmp 0x4616a2
cmp esi, 0x5a0
jge 0x4615cc
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
sub ecx, ebp
mov edx, eax
dec ecx
mov dword [esp + 0x74], ecx
fild dword [esp + 0x74]
neg edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x28]
fst dword [esp + 0x1c]
fild dword [esp + 0x74]
sub edx, eax
mov eax, ebp
dec edx
mov ecx, dword [esp + 0x1c]
fst dword [esp + 0x74]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x24], ecx
fild dword [esp + 0x5c]
neg eax
mov dword [esp + 0x5c], eax
fst dword [esp + 0x20]
fild dword [esp + 0x5c]
fst dword [esp + 0x18]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x10]
jmp 0x46169e
cmp esi, 0x870
jge 0x461636
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub edx, ebp
dec edx
sub ecx, eax
mov dword [esp + 0x74], edx
dec ecx
fild dword [esp + 0x74]
mov dword [esp + 0x74], ecx
mov edx, ebp
neg edx
fst dword [esp + 0x1c]
fild dword [esp + 0x74]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x1c]
neg eax
fst dword [esp + 0x74]
fild dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
fst dword [esp + 0x18]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
fstp dword [esp + 0x20]
fild dword [esp + 0x5c]
mov dword [esp + 0x14], ecx
fst dword [esp + 0x10]
jmp 0x4616a2
cmp esi, 0xb40
jge 0x461cb8
mov ecx, dword [esp + 0x28]
mov eax, ebp
neg eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x74]
sub ecx, eax
dec ecx
fst dword [esp + 0x18]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x18]
fild dword [esp + 0x74]
neg eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x30]
fst dword [esp + 0x74]
fild dword [esp + 0x5c]
sub eax, ebp
mov dword [esp + 0x24], edx
dec eax
fst dword [esp + 0x20]
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fst dword [esp + 0x1c]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
fstp dword [esp + 0x10]
mov dword [esp + 0x18], ecx
fstp dword [esp + 0x1c]
push ecx
fmul dword [esp + 0x84]
fstp dword [esp + 0x44]
fld dword [esp + 0x78]
fmul dword [esp + 0x88]
fstp dword [esp + 0x78]
fld dword [esp + 0x28]
fmul dword [esp + 0x84]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fmul dword [esp + 0x88]
fstp dword [esp + 0x24]
fld dword [esp + 0x18]
fmul dword [esp + 0x84]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x88]
fstp dword [esp + 0x14]
fld dword [esp + 0x78]
fmul dword [esp + 0x80]
fld dword [esp + 0x44]
fmul dword [esp + 0x7c]
fsubp st(1)
fmul dword [esp + 0x90]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x14]
fmul dword [esp + 0x80]
fld dword [esp + 0x18]
fmul dword [esp + 0x7c]
mov dword [esp + 0x54], eax
fsubp st(1)
fmul dword [esp + 0x90]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x24]
fmul dword [esp + 0x80]
fld dword [esp + 0x28]
fmul dword [esp + 0x7c]
mov edi, eax
mov dword [esp + 0x60], edi
fsubp st(1)
fmul dword [esp + 0x90]
fstp dword [esp]
call fcn.00418f00
fld dword [esp + 0x20]
fmul dword [esp + 0x88]
mov esi, eax
fmul dword [esp + 0x80]
fld dword [esp + 0x1c]
fmul dword [esp + 0x84]
fmul dword [esp + 0x7c]
fsubp st(1)
fmul dword [esp + 0x90]
fstp dword [esp]
call fcn.00418f00
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, esi
add esp, 4
sub eax, ecx
mov dword [esp + 0x84], eax
je 0x461880
mov eax, esi
sub eax, edi
mov dword [esp + 0x80], eax
je 0x461880
fld dword [esp + 0x20]
fmul dword [esp + 0x78]
fld dword [esp + 0x24]
fmul dword [esp + 0x7c]
faddp st(1)
fld dword [esp + 0x74]
fmul dword [esp + 0x78]
fld dword [esp + 0x40]
fmul dword [esp + 0x7c]
faddp st(1)
fsubr st(1)
fmul dword [esp + 0x88]
fmul dword [0x49f4c8]
fidiv dword [esp + 0x84]
call fcn.004922ac
test eax, eax
mov dword [esp + 0x20], eax
jge 0x461821
neg eax
mov dword [esp + 0x20], eax
fld dword [esp + 0x10]
fmul dword [esp + 0x78]
fld dword [esp + 0x14]
fmul dword [esp + 0x7c]
faddp st(1)
fsub st(1)
fmul dword [esp + 0x88]
fmul dword [0x49f4c8]
fidiv dword [esp + 0x80]
call fcn.004922ac
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
jge 0x46185e
neg edi
mov dword [esp + 0x24], edi
fmul dword [esp + 0x88]
fmul dword [0x49f4c8]
call fcn.004922ac
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
jmp 0x4618e4
fld dword [esp + 0x74]
fmul dword [esp + 0x78]
fld dword [esp + 0x40]
fmul dword [esp + 0x7c]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
faddp st(1)
fmul dword [esp + 0x88]
fmul dword [0x49f4c8]
call fcn.004922ac
fld dword [esp + 0x10]
fmul dword [esp + 0x78]
fld dword [esp + 0x14]
fmul dword [esp + 0x7c]
mov dword [esp + 0x84], eax
faddp st(1)
fmul dword [esp + 0x88]
fmul dword [0x49f4c8]
call fcn.004922ac
mov edi, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov ecx, dword [0x4b6c44]
mov edx, dword [esp + 0x44]
sub ecx, edx
cmp esi, ecx
jge 0x461935
cmp esi, dword [esp + 0x50]
jge 0x461914
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x84]
sub edi, edx
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x24]
jmp 0x46191b
add dword [esp + 0x84], edi
cmp esi, dword [esp + 0x5c]
jge 0x461925
add eax, edi
jmp 0x461929
sub eax, dword [esp + 0x20]
inc esi
cmp esi, ecx
jl 0x4618f4
mov dword [esp + 0x80], eax
mov eax, dword [0x4b6c48]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
sub eax, edx
cmp ecx, eax
jle 0x46194c
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
push eax
push edi
call fcn.0044f420
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x461cb8
mov ecx, dword [0x4b603c]
mov edx, dword [0x4b6038]
push ecx
push edx
call fcn.0044f370
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x14]
add esp, 8
test eax, eax
jne 0x46199e
mov eax, dword [ebx + 0x30]
push eax
push edi
call fcn.0044f010
add esp, 8
mov dword [esp + 0x74], eax
jmp 0x4619ab
push eax
mov dword [esp + 0x78], eax
call fcn.004483c0
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], esi
cmp esi, eax
jg 0x461ca1
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
fild dword [esp + 0x54]
fild dword [esp + 0x34]
shl eax, 0x10
mov dword [esp + 0x34], eax
lea eax, [esi + ecx]
shl ebp, 0x10
shl eax, 2
mov dword [esp + 0x54], ebp
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x80]
mov ecx, dword [0x4b6c3c]
sar esi, 0x10
mov edx, eax
mov dword [esp + 0x70], esi
sub edx, esi
sar edi, 0x10
cmp edx, ecx
jle 0x461a15
mov esi, eax
sub esi, ecx
mov dword [esp + 0x70], esi
mov ecx, dword [0x4b6c38]
mov edx, eax
sub edx, edi
cmp edx, ecx
jge 0x461a27
mov edi, eax
sub edi, ecx
fild dword [esp + 0x70]
fdiv dword [esp + 0x88]
fild dword [esp + 0x78]
fdiv dword [esp + 0x8c]
fld st(1)
fmul dword [esp + 0x4c]
fld st(1)
fmul dword [esp + 0x48]
fsubp st(1)
fmul dword [0x49f4d8]
fdiv st(4)
call fcn.004922ac
fxch st(1)
fmul dword [esp + 0x48]
fxch st(1)
fmul dword [esp + 0x4c]
mov ebx, dword [esp + 0x54]
sub ebx, eax
faddp st(1)
fmul dword [0x49f4d8]
fdiv st(1)
call fcn.004922ac
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x34]
sub ebp, eax
mov eax, dword [esp + 0x58]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x7c]
sub eax, esi
mov edx, dword [edx + ecx]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x70], eax
mov eax, edi
sub eax, esi
lea ecx, [eax + 1]
mov eax, ecx
imul ecx, dword [esp + 0x3c]
imul eax, dword [esp + 0x38]
add eax, ebx
add ecx, ebp
cmp edi, esi
mov dword [esp + 0x6c], ecx
jl 0x461b51
mov edx, dword [esp + 0x28]
sar ecx, 0x10
cmp ecx, edx
jge 0x461af0
mov edx, dword [esp + 0x30]
mov ecx, eax
sar ecx, 0x10
cmp ecx, edx
jge 0x461af0
mov ecx, dword [esp + 0x6c]
test ecx, 0xffff0000
jl 0x461af4
test eax, 0xffff0000
jge 0x461b0b
jmp 0x461af4
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x38]
sub eax, edx
mov edx, dword [esp + 0x3c]
sub ecx, edx
dec edi
cmp edi, esi
mov dword [esp + 0x6c], ecx
jge 0x461ac3
jmp 0x461b51
cmp esi, edi
jg 0x461b51
mov ecx, dword [esp + 0x28]
mov eax, ebp
sar eax, 0x10
cmp eax, ecx
jge 0x461b35
mov ecx, ebx
sar ecx, 0x10
cmp ecx, edx
jge 0x461b35
test ebp, 0xffff0000
jl 0x461b35
test ebx, 0xffff0000
jge 0x461b51
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add ebx, eax
mov eax, dword [esp + 0x70]
add ebp, ecx
sub eax, 2
inc esi
mov dword [esp + 0x70], eax
cmp esi, edi
jle 0x461b0f
sub edi, esi
inc edi
test edi, edi
jle 0x461c1b
mov dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x64]
mov edx, ebp
sar edx, 0x10
mov eax, ebx
mov edx, dword [ecx + edx*4]
sar eax, 0x10
add edx, eax
mov eax, dword [esp + 0x40]
movzx ax, byte [edx + eax]
test ax, ax
je 0x461bf5
mov edx, dword [esp + 0x74]
and eax, 0xffff
xor ecx, ecx
mov cx, word [edx + eax*2 + 0x5c]
mov edx, dword [esp + 0x70]
xor eax, eax
mov esi, ecx
mov ax, word [edx]
and esi, 0xf800
mov edx, eax
and edx, 0xf800
add edx, esi
cmp edx, 0xf800
jbe 0x461bb9
mov edx, 0xf800
mov esi, eax
mov edi, ecx
and esi, 0x7e0
and edi, 0x7e0
add esi, edi
cmp esi, 0x7e0
jbe 0x461bd8
mov esi, 0x7e0
and eax, 0x1f
and ecx, 0x1f
add eax, ecx
cmp eax, 0x1f
jbe 0x461bea
mov eax, 0x1f
mov ecx, dword [esp + 0x70]
or eax, esi
or eax, edx
mov word [ecx], ax
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
add ebx, esi
add ebp, edx
sub ecx, 2
dec eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], eax
jne 0x461b60
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jge 0x461c3d
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x84]
sub ecx, edx
mov dword [esp + 0x84], ecx
jmp 0x461c51
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add edx, ecx
mov dword [esp + 0x84], edx
cmp eax, dword [esp + 0x5c]
jge 0x461c6d
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
add ecx, edx
mov dword [esp + 0x80], ecx
jmp 0x461c81
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
sub edx, ecx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jle 0x4619e3
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x40]
push edx
call fcn.0044f4d0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret