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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2a0
mov edi, dword [ebp + 8]
mov eax, dword [edx]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x88], edx
mov ebx, dword [edi]
mov dword [esp + 0xc], eax
cmp ebx, 0x80000001
jne 0x46cd35
cmp dword [edi + 0xc], 0x80000001
jne 0x46cd35
cmp dword [edi + 0x18], 0x80000001
jne 0x46cd35
mov edx, dword [edi + 4]
mov ecx, 0x80000001
call fcn.0045c60e
mov edx, dword [edi + 0x10]
mov ecx, 0x80000001
call fcn.0045c60e
mov edx, dword [edi + 0x1c]
mov ecx, 0x80000001
call fcn.0045c60e
mov edi, dword [esp + 0xc]
mov esi, dword [edi + 0x248]
jmp 0x46ce1c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x248]
call fcn.00464a67
mov esi, eax
cmp ebx, 0x80000001
je 0x46cd87
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
mov edx, dword [esi + 0xa4]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0xa0]
mov dword [esp + 4], eax
call fcn.004767d9
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xa8], eax
mov dword [esi + 0xa4], ecx
mov ebx, dword [edi + 0xc]
cmp ebx, 0x80000001
je 0x46cdcb
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0xb0]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0xac]
mov dword [esp + 4], eax
call fcn.004767d9
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb0], ecx
mov ebx, dword [edi + 0x18]
cmp ebx, 0x80000001
je 0x46ce07
mov eax, dword [edi + 0x1c]
mov ecx, dword [esi + 0xb8]
mov edx, dword [esi + 0xbc]
mov edi, dword [edi + 0x20]
mov dword [esp + 4], eax
call fcn.004767d9
mov eax, dword [esp + 4]
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xc0], edi
mov dword [esi + 0xbc], eax
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x248]
call fcn.004613f1
mov dword [edi + 0x248], esi
mov ecx, esi
call fcn.00464426
test eax, eax
cmove edx, eax
xor esi, esi
xor ecx, ecx
inc esi
test eax, eax
mov dword [esp + 4], edx
setne cl
cmove eax, esi
mov edx, esi
shl ecx, 0x1f
mov dword [esp + 8], eax
mov dword [esp + 0x1c], ecx
xor ecx, ecx
call fcn.004767d9
mov ecx, dword [edi + 0x248]
call fcn.00464444
xor ecx, ecx
test eax, eax
setne cl
cmove edx, eax
cmove eax, esi
shl ecx, 0x1f
mov dword [esp + 0x18], edx
mov edx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
xor ecx, ecx
call fcn.004767d9
mov ecx, dword [edi + 0x248]
lea eax, [edi + 0x23c]
mov dword [esp + 0x20], eax
call fcn.00464435
mov esi, edx
mov edx, dword [edi + 0x23c]
lea ebx, [esp + 0x278]
mov ecx, ebx
push dword [edi + 0x238]
push dword [edi + 0x234]
push esi
push eax
call fcn.004789b8
add esp, 0x10
mov ecx, ebx
call fcn.0046d870
mov edi, edx
xor ebx, ebx
test eax, eax
mov esi, eax
mov edx, 1
setne bl
cmove edi, eax
cmove esi, edx
xor ecx, ecx
shl ebx, 0x1f
call fcn.004767d9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x120], 0x80000006
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], edi
lea ebx, [esp + 0x1f0]
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14c], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x150], ecx
mov ecx, ebx
call fcn.0046d8b8
mov ecx, ebx
mov edx, 0x63ed70
call fcn.004605ca
test al, al
push 0x2d
pop eax
push 0x21
pop edi
mov edx, dword [esp + 0x20]
lea esi, [esp + 0x28]
cmovne edi, eax
mov ecx, esi
call fcn.0046d906
mov ecx, 0x80000005
call fcn.004797e8
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
and dword [ebx], 0
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0xc]
mov dword [ebx + 0x28], edx
mov word [ebx + 0x2c], di
mov edx, dword [ecx + 0x248]
cmp dword [edx + 0x68], 0
je 0x46d1bc
lea edi, [esp + 0x1b0]
add edx, 0x68
mov ecx, edi
call fcn.004630cf
cmp dword [edi], 0
mov edi, 0
je 0x46d1be
lea esi, [esp + 0x1d0]
lea edx, [esp + 0x1b0]
mov ecx, esi
call fcn.00474563
lea edi, [esp + 0x268]
mov ecx, edi
call fcn.0047464e
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov ebx, dword [edi]
mov edi, dword [edi + 4]
movsd xmm0, qword [0x69eaa0]
movsd xmm2, qword [0x69eaa8]
movsd xmm1, qword [esi + 0x10]
lea eax, [esp + 0x68]
movsd qword [eax - 8], xmm2
movsd qword [eax - 0x10], xmm0
mov dword [eax + 4], edi
lea edi, [esp + 0x28]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x18]
movsd xmm2, qword [esi]
mov dword [eax + 0xc], edx
movsd qword [edi + 0x10], xmm1
movsd xmm1, qword [esi + 8]
mov esi, dword [esi + 0x1c]
mov dword [edi + 0x18], ecx
movsd qword [edi], xmm2
lea ecx, [esp + 0x58]
movsd qword [edi + 8], xmm1
mov edx, esi
push eax
call fcn.0047339f
pop eax
mov dword [edi + 0x1c], esi
lea edi, [esp + 0xbc]
lea ebx, [esp + 0xd4]
lea esi, [esp + 0x8c]
mov ecx, esi
lea edx, [esp + 0x28]
call fcn.004730e8
cmp dword [esp + 0x8c], 0x80000000
je 0x46d16e
movsd xmm0, qword [esp + 0x9c]
movsd xmm1, qword [esp + 0x94]
lea ecx, [esp + 0xa4]
lea edx, [esp + 0x58]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm0
mov eax, dword [ebx + 8]
movsd xmm0, qword [ebx]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x94]
movsd qword [edi], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd xmm1, qword [esp + 0xc0]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x94]
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd xmm2, qword [esp + 0xb8]
movsd qword [esp + 0xd8], xmm1
mov dword [esp + 0x80], eax
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0xd0], xmm2
push ebx
lea eax, [esp + 0x7c]
push eax
call fcn.00473122
pop eax
pop ecx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
call fcn.0045c60e
jmp 0x46d074
lea ecx, [esp + 0x28]
call fcn.00473248
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x58]
lea ebx, [esp + 0x1f0]
movsd qword [esp + 0xe0], xmm0
movsd qword [esp + 0xe8], xmm2
movsd qword [esp + 0xf0], xmm1
mov dword [esp + 0xf8], eax
jmp 0x46d1be
xor edi, edi
lea esi, [esp + 0x1f0]
mov ecx, esi
call fcn.004797fe
mov eax, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0xf0]
movsd xmm2, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
mov dword [esi], edi
mov dword [ebx + 0x1c], eax
movsd qword [ebx + 0x14], xmm0
movsd qword [ebx + 0xc], xmm1
movsd qword [ebx + 4], xmm2
push 0xc
pop eax
lea ebx, [esp + 0x28]
mov ecx, eax
lea edx, [esp + 0x100]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov edi, edx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
push 0x16
pop ecx
mov esi, edx
lea edi, [esp + 0x1f0]
lea edx, [esp + 0x220]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x78]
call fcn.00473be8
lea edx, [esp + 0x22c]
lea ecx, [esp + 0xa4]
call fcn.00473be8
lea esi, [esp + 0x238]
lea ecx, [esp + 0x8c]
mov edx, esi
call fcn.00473be8
mov eax, dword [esi - 0x28]
cmp eax, 0x80000006
jne 0x46d278
mov edi, 0x80000006
jmp 0x46d59c
movzx ebx, word [esp + 0x21c]
cmp eax, 0x80000005
jne 0x46d294
mov dword [esp + 0xb0], 0x80000005
jmp 0x46d2a7
lea edx, [esp + 0x210]
lea ecx, [esp + 0xb0]
call fcn.00478954
mov eax, dword [esp + 0x1f0]
test eax, eax
je 0x46d31e
mov edx, dword [esp + 0x1f4]
movdqa xmm0, xmmword [eax]
mov esi, dword [esp + 0x1fc]
lea edi, [eax + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
lea ecx, [eax + edx + 1]
test edx, edx
mov dword [esp + 0x20], ecx
pmovmskb ecx, xmm0
not ecx
mov dword [esp + 0x1c], ecx
je 0x46d325
mov edi, eax
lea eax, [edx + 1]
mov ecx, edx
mov dword [esp + 4], 0
push 0x18
pop edx
mul edx
jo 0x46d310
add eax, 0xf
add ecx, 0x11
and eax, 0xfffffff0
add ecx, eax
jae 0x46d83e
mov ecx, edi
mov edx, ecx
mov edi, esi
sub edx, eax
mov dword [esp + 0x10], edx
jmp 0x46d32f
xor edx, edx
jmp 0x46d547
mov edi, esi
mov dword [esp + 4], 0
lea esi, [esp + 0x258]
mov ecx, esi
call fcn.0047464e
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi]
mov esi, dword [esi + 4]
movsd xmm0, qword [0x69eaa0]
movsd xmm1, qword [0x69eaa8]
lea ebx, [esp + 0x38]
movsd qword [ebx - 0x10], xmm0
movsd qword [ebx - 8], xmm1
mov dword [ebx], edx
mov dword [ebx + 4], esi
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
lea ecx, [esp + 0x28]
mov edx, edi
push ebx
call fcn.0047339f
pop eax
mov eax, dword [esp + 4]
lea esi, [esp + 0x10c]
lea ebx, [esp + 0x64]
mov dword [esi - 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esi - 8], eax
mov eax, dword [esp + 0x10]
mov dword [esi - 4], eax
mov eax, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
mov word [esi + 0xc], ax
mov dword [esi + 0x10], edi
lea edi, [esp + 0xe0]
mov ecx, esi
call fcn.0047426d
test eax, eax
je 0x46d4c7
movsd xmm0, qword [eax - 0x18]
movsd xmm1, qword [eax - 0x10]
movsd qword [esp + 0x1b0], xmm0
movsd xmm0, qword [eax - 8]
cmp dword [esp + 0x1b0], 0x80000001
movsd qword [esp + 0x1b8], xmm1
movsd qword [esp + 0x1c0], xmm0
je 0x46d4c7
add eax, 0xffffffe8
lea ecx, [esp + 0x1d0]
lea edx, [esp + 0x1b0]
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
call fcn.00473be8
lea ecx, [esp + 0x1dc]
mov edx, ebx
call fcn.00473be8
movsd xmm2, qword [esp + 0x1d0]
movsd xmm0, qword [esp + 0x1e0]
movsd xmm1, qword [esp + 0x1d8]
mov eax, dword [esp + 0x1d8]
mov ecx, edi
lea edx, [esp + 0x28]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm2
mov dword [esp + 0xd0], eax
movsd qword [esp + 0xc8], xmm2
push ebx
lea eax, [esp + 0xcc]
push eax
call fcn.00473122
pop eax
pop ecx
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
call fcn.0045c60e
jmp 0x46d3c7
cmp dword [esp + 0x11c], 0
je 0x46d4e8
mov ecx, esi
call fcn.0047426d
test eax, eax
je 0x46d4e8
add eax, 0xffffffe8
mov ecx, eax
call fcn.004742b9
jmp 0x46d4d1
mov edx, dword [esp + 0x100]
test edx, edx
je 0x46d507
mov ecx, dword [esp + 0x108]
push dword [esp + 0x104]
call fcn.00408833
pop eax
movsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [esp + 0x34]
movsd xmm1, qword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0x108], xmm2
movsd qword [esp + 0x110], xmm1
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xb4]
movsd xmm1, qword [esp + 0x108]
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0x100]
mov dword [esp + 0x58], eax
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x110]
mov eax, dword [esp + 0x118]
mov dword [esp + 0x5c], ecx
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x38], xmm1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x78]
movsd xmm2, qword [esp + 0xa4]
movsd xmm1, qword [esp + 0x8c]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0xac]
movsd qword [esp + 0x188], xmm0
movsd qword [esp + 0x194], xmm2
movsd xmm2, qword [esp + 0x28]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x94]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [esp + 0x30]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x158], edx
movsd qword [esp + 0x164], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x15c], xmm2
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x58]
movsd qword [esp + 0x16c], xmm1
mov dword [esp + 0x178], edi
mov dword [esp + 0x180], ecx
lea ecx, [esp + 0x278]
mov dword [esp + 0x17c], eax
mov word [esp + 0x184], bx
call fcn.0046d968
and dword [esp + 0x28], 0
mov dword [esp + 0x2c], 1
and dword [esp + 0x30], 0
push 0x11
pop edx
lea esi, [esp + 0x28]
mov ecx, esi
call fcn.0047656d
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x190]
push esi
call fcn.00477cdc
pop eax
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x19c]
push esi
call fcn.00477c6f
pop eax
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 0x1a8]
push esi
call fcn.00477cdc
pop eax
cmp edi, 0x80000006
je 0x46d76b
lea ecx, [esp + 0x28]
mov edx, ebx
call fcn.004764d5
cmp edi, 0x80000005
je 0x46d6fb
lea ecx, [esp + 0x178]
lea edx, [esp + 0x28]
call fcn.004788d5
cmp dword [esp + 4], 0
je 0x46d714
lea ecx, [esp + 0x158]
lea edx, [esp + 0x28]
call fcn.0047980e
jmp 0x46d76b
lea esi, [esp + 0x248]
mov ecx, esi
call fcn.0047464e
mov ecx, dword [esi + 0xc]
mov edx, dword [esi]
mov edi, dword [esi + 4]
movsd xmm0, qword [0x69eaa0]
movsd xmm1, qword [0x69eaa8]
mov eax, dword [esi + 8]
lea esi, [esp + 0x100]
movsd qword [esi], xmm0
movsd qword [esi + 8], xmm1
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], ecx
lea edx, [esp + 0x28]
mov ecx, esi
mov dword [esi + 0x18], eax
call fcn.0047980e
mov ecx, esi
call fcn.00476652
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.00461d01
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46d862
mov esi, dword [esp + 0x2c]
lea edi, [esp + 0x1f0]
mov edx, ebx
mov cl, byte [esi]
mov byte [ebx + 0x25a], cl
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], eax
lea eax, [esp + 0x100]
mov ecx, edi
push eax
call fcn.00461d2a
pop eax
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.00563c9c
mov eax, dword [edi]
cmp eax, 8
jne 0x46d7f0
mov byte [ebx + 0x25a], 0
add ebx, 0x1f8
mov ecx, ebx
call fcn.0046cc53
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x88]
push 0
call fcn.0046d978
pop eax
jmp 0x46d82a
mov ecx, dword [esp + 0x20c]
mov edx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x204]
movsd xmm2, qword [esp + 0x1f4]
movsd xmm1, qword [esp + 0x1fc]
mov dword [edx + 0x1c], ecx
movsd qword [edx + 0x14], xmm0
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm2
mov dword [edx], eax
lea ecx, [esp + 0x158]
call fcn.0046f2e8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, ecx
cmp ecx, 0x7ffffff1
mov ecx, edi
jb 0x46d84f
jmp 0x46d312
mov dword [esp + 0x84], edx
push 0x10
pop edx
mov dword [esp + 4], edx
jmp 0x46d312
xor ecx, ecx
xor edx, edx
push 0x63f73c
call fcn.0043a050