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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0xcc
push ebx
push ebp
push esi
push edi
xor edi, edi
mov ebx, ecx
cmp eax, edi
je 0x46caa1
cmp dword [eax + 0xd0], edi
jle 0x46caa1
cmp dword [esp + 0xe4], edi
jg 0x46c29c
cmp dword [esp + 0xe8], edi
jle 0x46caa1
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x58], edx
add eax, 0x174
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
push edi
call fcn.00470b80
mov esi, eax
test esi, esi
je 0x46c34e
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x46c34e
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xe4]
inc edx
cmp ecx, 0xffffffff
mov dword [esp + 0x24], edx
lea ebp, [esp + edi*4 + 0x64]
je 0x46c317
lea ecx, [esp + edi*4 + 0x50]
push ecx
push ebp
push eax
call fcn.0046bc30
jmp 0x46c323
lea edx, [esp + edi*4 + 0x50]
push edx
push ebp
push eax
call fcn.0046bcd0
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, 0xffffffff
je 0x46c340
fld dword [esi + 0x20]
fimul dword [ebp]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x46c34e
fld dword [esi + 0x20]
fimul dword [ebp]
mov dword [esp + 0x14], edi
fstp dword [esp + 0x10]
inc edi
cmp edi, 4
jl 0x46c2d9
cmp dword [esp + 0x14], 0xffffffff
je 0x46c43c
cmp dword [esp + 0x24], 1
jle 0x46c43c
xor esi, esi
cmp esi, dword [esp + 0x14]
je 0x46c432
mov eax, dword [esp + 0xe0]
push esi
lea ecx, [eax + 0x174]
call fcn.00470b80
mov edi, eax
test edi, edi
je 0x46c432
mov ecx, dword [edi + 0xc]
test ecx, ecx
mov dword [esp + 0x30], ecx
jle 0x46c432
fld dword [edi + 0x20]
fimul dword [esp + 0x30]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x46c3c4
fstp st(0)
mov dword [esp + esi*4 + 0x64], ecx
mov dword [esp + esi*4 + 0x50], 1
jmp 0x46c432
fdiv dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.00615ba5
add esp, 8
call fcn.0061318c
test eax, eax
mov dword [esp + esi*4 + 0x50], eax
jg 0x46c3eb
mov dword [esp + esi*4 + 0x50], 1
mov eax, dword [edi + 0xc]
mov ebp, dword [esp + esi*4 + 0x50]
cdq
idiv ebp
mov ecx, eax
mov dword [esp + esi*4 + 0x64], ecx
mov eax, dword [edi + 0xc]
cdq
idiv ebp
test edx, edx
jle 0x46c40a
inc ecx
mov dword [esp + esi*4 + 0x64], ecx
mov ecx, dword [esp + esi*4 + 0x64]
mov edx, ecx
imul edx, ebp
sub edx, dword [edi + 0xc]
cmp edx, ecx
jle 0x46c432
mov eax, dword [esp + esi*4 + 0x50]
cmp eax, 1
jle 0x46c432
dec eax
mov dword [esp + esi*4 + 0x50], eax
imul eax, ecx
sub eax, dword [edi + 0xc]
cmp eax, ecx
jg 0x46c41a
inc esi
cmp esi, 4
jl 0x46c36c
xor ebp, ebp
xor edi, edi
xor esi, esi
xor eax, eax
mov ecx, dword [esp + eax + 0x64]
cmp ecx, edi
jle 0x46c44e
mov edi, ecx
mov ecx, dword [esp + eax + 0x50]
add eax, 4
add esi, ecx
cmp eax, 0x10
jl 0x46c444
mov eax, esi
mov ecx, dword [ebx + 8]
imul eax, edi
cmp eax, ecx
mov dword [esp + 0x74], esi
jle 0x46c47c
push eax
mov ecx, ebx
call fcn.0046f9c0
test eax, eax
je 0x46caa1
cmp esi, dword [ebx + 0x20]
jle 0x46c491
push esi
mov ecx, ebx
call fcn.0046fb30
test eax, eax
je 0x46caa1
mov ecx, dword [ebx + 8]
xor eax, eax
cmp ecx, ebp
jle 0x46c4ae
xor ecx, ecx
mov edx, dword [ebx + 0xc]
inc eax
mov dword [edx + ecx + 0x40], ebp
mov edx, dword [ebx + 8]
add ecx, 0x48
cmp eax, edx
jl 0x46c49c
mov eax, dword [esp + 0xe4]
mov dword [ebx + 4], ebp
cmp eax, 0xffffffff
je 0x46c4c5
mov dword [ebx], 1
jmp 0x46c4ea
cmp dword [esp + 0xf4], 1
jne 0x46c4d7
mov dword [ebx], 8
jmp 0x46c4ea
mov eax, dword [esp + 0xf0]
dec eax
neg eax
sbb eax, eax
and al, 0xfb
add eax, 7
mov dword [ebx], eax
mov dword [ebx + 0x2c], ebp
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x24], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xe0]
push ecx
lea ecx, [edx + 0x174]
call fcn.00470b80
mov esi, eax
test esi, esi
mov dword [esp + 0x48], esi
je 0x46c9fc
mov ebp, dword [esi + 0x24]
test ebp, ebp
jle 0x46c9fc
dec ebp
mov ecx, 0x32
neg ebp
sbb ebp, ebp
xor eax, eax
mov edi, 0x68c0e4
mov dword [esp + 0x7c], eax
rep stosd dword es:[edi], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0xbf800000
push ecx
fld dword [esi + 0x20]
fstp dword [esp]
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x8c]
neg ebp
push eax
dec ebp
call fcn.005e8450
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xf0]
cmp eax, 1
jne 0x46c5dc
fld dword [esp + 0x38]
fadd st(0), st(0)
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fadd st(0), st(0)
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fadd st(0), st(0)
fstp dword [esp + 0x40]
fld dword [esp + 0x28]
fcomp dword [0x6364d4]
fnstsw ax
test ah, 0x41
jne 0x46c61b
fld dword [esp + 0x10]
fcomp dword [0x6364d4]
fnstsw ax
test ah, 0x41
jne 0x46c61b
fld dword [esi + 0x20]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x46c61b
fld dword [esi + 0x20]
fsub dword [esp + 0x10]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
lea eax, [esp + ecx*4 + 0x50]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
jle 0x46c9fc
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
lea eax, [esp + edx*4 + 0x64]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
shl eax, 2
mov dword [esp + 0x24], eax
jmp 0x46c660
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x30]
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
mov edx, dword [eax]
cmp edx, 1
jle 0x46c68c
mov eax, edx
mov edx, dword [esp + 0x4c]
dec eax
cmp edx, eax
jne 0x46c68c
imul eax, dword [ecx]
mov esi, dword [esi + 0xc]
sub esi, eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x7c]
push eax
mov eax, esi
cdq
sub eax, edx
lea ecx, [esp + 0xbc]
sar eax, 1
mov dword [esp + 0x38], eax
push ecx
fild dword [esp + 0x3c]
push ecx
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x44]
fstp dword [esp]
push edx
call fcn.005e8450
mov ecx, eax
call fcn.005e8540
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xf0]
cmp eax, 1
jne 0x46c737
mov ecx, edi
and ecx, reloc.DPLAYX.dll_Ordinal_1
jns 0x46c6f7
dec ecx
or ecx, 0xfffffffe
inc ecx
push 0x40800000
jne 0x46c708
lea edx, [esp + 0x98]
push edx
jmp 0x46c753
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x3c]
push eax
call fcn.005e84f0
fld dword [esp + 0x18]
fadd dword [eax]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fadd dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fadd dword [eax + 8]
jmp 0x46c778
and esi, reloc.DPLAYX.dll_Ordinal_1
jns 0x46c744
dec esi
or esi, 0xfffffffe
inc esi
jne 0x46c77c
lea ecx, [esp + 0xa0]
push 0x40000000
push ecx
lea ecx, [esp + 0x40]
call fcn.005e84f0
fld dword [esp + 0x18]
fsub dword [eax]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fsub dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fsub dword [eax + 8]
fstp dword [esp + 0x20]
mov ecx, dword [ebx + 0x28]
mov esi, dword [esp + 0x24]
add ecx, esi
call fcn.0046c160
mov ecx, dword [ebx + 0x28]
push edi
mov edi, dword [esp + 0x14]
add ecx, esi
push edi
call fcn.0046bfc0
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x34], 0
fld dword [esp + 0x28]
test edi, edi
fstp dword [edx + esi + 0x10]
jle 0x46c99e
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
lea esi, [esi + esi*8]
shl esi, 3
mov eax, dword [ebx + 0xc]
mov dword [eax + esi], 0xffffffff
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x18]
lea edx, [ecx + esi + 4]
mov ecx, dword [esp + 0x1c]
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov eax, dword [esp + 0xf4]
cmp eax, 1
jne 0x46c840
fld dword [0x63a7e4]
fmul dword [0x634598]
fld dword [0x63a7e4]
fsub dword [0x63a7e8]
fimul dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + esi + 0xc]
fmul dword [0x634598]
fidiv dword [esp + 0x74]
fsubp st(1)
fld dword [ecx]
fcomp dword [0x634594]
fnstsw ax
test ah, 1
je 0x46c83c
fld dword [ecx]
fsub st(1)
fstp dword [ecx]
fstp st(0)
jmp 0x46c840
fadd dword [ecx]
fstp dword [ecx]
mov edx, dword [ebx + 0xc]
xor ecx, ecx
mov dword [edx + esi + 0x10], ecx
mov dword [edx + esi + 0x14], ecx
lea eax, [edx + esi + 0x10]
cmp ebp, 0xffffffff
mov dword [eax + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [eax + esi + 0x1c], ecx
mov dword [eax + esi + 0x20], ecx
lea eax, [eax + esi + 0x1c]
mov dword [eax + 8], ecx
mov edx, dword [0x6833d0]
mov eax, dword [edx + 0x424]
mov edx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [edx + esi + 0x28], eax
mov edx, dword [ebx + 0xc]
mov dword [edx + esi + 0x2c], ecx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x2c]
mov dword [eax + esi + 0x30], edx
mov eax, dword [ebx + 0xc]
mov dword [eax + esi + 0x34], ecx
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x14]
mov dword [ecx + esi + 0x40], 1
mov edx, dword [ebx + 0xc]
mov dword [edx + esi + 0x38], eax
jle 0x46c8bd
mov ecx, dword [ebx + 0xc]
mov edx, dword [edi + ebp*4 + 0x28]
mov dword [ecx + esi + 0x3c], edx
jmp 0x46c8c8
mov eax, dword [ebx + 0xc]
mov dword [eax + esi + 0x3c], 0xffffffff
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [ebx + 0x28]
push edx
add ecx, eax
call fcn.0046c020
fld dword [esp + 0x18]
fsub dword [esp + 0x38]
mov edx, dword [esp + 0x44]
add esi, 0x48
inc edx
cmp ebp, 0xffffffff
mov dword [esp + 0x44], edx
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fsub dword [esp + 0x3c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fsub dword [esp + 0x40]
fstp dword [esp + 0x20]
jle 0x46c983
mov edx, dword [ebp*4 + 0x68c0e4]
inc edx
mov dword [ebp*4 + 0x68c0e4], edx
mov eax, dword [edi + 0x24]
cmp eax, 2
jne 0x46c939
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
dec ecx
cmp edx, ecx
jge 0x46c93a
inc ebp
cmp ebp, eax
jl 0x46c940
xor ebp, ebp
mov edx, dword [ebp*4 + 0x68c0e4]
mov ecx, dword [edi + ebp*4 + 0xf0]
cmp edx, ecx
jl 0x46c983
mov ecx, ebp
inc ebp
cmp ebp, eax
jl 0x46c95b
xor ebp, ebp
cmp ebp, ecx
je 0x46c980
mov edx, dword [ebp*4 + 0x68c0e4]
cmp edx, dword [edi + ebp*4 + 0xf0]
jl 0x46c97c
inc ebp
cmp ebp, eax
jl 0x46c976
xor ebp, ebp
cmp ebp, ecx
jne 0x46c95f
jmp 0x46c980
cmp ebp, ecx
jne 0x46c983
or ebp, 0xffffffff
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jl 0x46c7c3
mov esi, dword [esp + 0x24]
mov edi, ecx
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x48]
add ecx, edi
mov edi, dword [esp + 0x2c]
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0xf0]
fld dword [eax + 0x20]
inc edi
add esi, 0x14
test ecx, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
jne 0x46c9d5
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [eax + 0x20]
jmp 0x46c9e1
fadd st(0), st(0)
fld st(0)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
fstp dword [esp + 0x10]
mov edx, dword [ecx]
inc eax
cmp eax, edx
mov dword [esp + 0x4c], eax
jl 0x46c658
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jl 0x46c512
mov eax, dword [ebx]
mov ebp, dword [esp + 0xec]
xor esi, esi
cmp eax, 2
je 0x46ca28
cmp eax, 8
je 0x46ca28
cmp eax, 7
jne 0x46ca33
cmp dword [ebp], 1
jne 0x46ca33
mov esi, 1
mov edi, dword [esp + 0xe0]
lea edx, [esp + 0x60]
push esi
push edx
push edi
mov ecx, ebx
mov dword [esp + 0x6c], 0
call fcn.0046df60
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x46ca8f
mov ecx, ebx
call fcn.0046d760
mov eax, dword [ebx + 0x10]
test eax, eax
jle 0x46ca87
test ebp, ebp
je 0x46ca87
cmp esi, 1
jne 0x46ca87
push ebp
push edi
mov ecx, ebx
call fcn.0046d790
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret 0x18
push edi
mov ecx, ebx
call fcn.0046d990
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xcc
ret 0x18
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret 0x18