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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x6b0
mov esi, esp
mov dword [esi + 0x698], ebp
mov dword [esi + 0x69c], esp
mov dword [esi + 0x6a8], 0xffffffff
mov dword [esi + 0x6a4], 0x46d2f0
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x6a0]
mov edx, dword fs:[0]
mov dword [esi + 0x6a0], edx
mov dword fs:[0], ecx
lea ecx, [esi + 0x298]
push 0
push 3
push 0x2000
push dword [edi + 8]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov dword [esi + 0x14], ecx
push ecx
call fcn.0046c700
add esp, 0x24
cmp dword [esi + 0x298], 1
jne 0x46c9ea
mov bl, 1
jmp 0x46d0c6
mov edx, dword [esi + 0x2c0]
mov edi, dword [ebp + 0x1c]
movsd xmm0, qword [esi + 0x2a8]
movsd xmm1, qword [esi + 0x2b0]
movsd xmm2, qword [esi + 0x2b8]
mov bl, 1
mov eax, edx
mov ecx, edx
movsd qword [esi + 0x128], xmm0
movsd qword [esi + 0x130], xmm1
movsd qword [esi + 0x138], xmm2
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x20], xmm1
movsd qword [esi + 0x18], xmm0
and eax, 7
shr ecx, 3
cmp eax, 1
mov eax, dword [esi + 0x2a0]
sbb ecx, 0xffffffff
cmp ecx, edi
mov ecx, dword [esi + 0x2a4]
jne 0x46d096
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x44], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0x40], edx
mov dword [esi + 0x6a8], 0
push ecx
push edi
push eax
call fcn.00472410
add esp, 0xc
mov bl, 1
test eax, eax
je 0x46d096
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
mov byte [esi + 7], 1
mov dword [esi + 0x6a8], 1
mov dword [esi + 0x10], edx
push edx
mov dword [esi + 8], eax
push eax
call fcn.005497b0
add esp, 8
cmp eax, 0xffffffff
je 0x46cda5
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x6a8], 3
mov dword [esi + 0x298], edx
mov dword [esi + 0x29c], eax
mov dword [esi + 0x30], edi
mov dword [esi + 0x2a4], edi
mov edi, dword [esi + 8]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x2a0], ecx
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x38], eax
lea eax, [esi + 0x2a0]
mov dword [esi + 0x128], edi
mov dword [esi + 0x12c], ebx
push ebx
push eax
mov dword [esi + 0x3c], edx
push edx
push ecx
push edi
push edi
call fcn.00472900
add esp, 0x18
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov byte [esi + 7], 0
mov dword [esi + 0x6a8], 1
mov dword [esi + 0x298], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x29c], eax
mov eax, dword [esi + 0x30]
mov dword [esi + 0x2a4], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x2a0], eax
lea eax, [esi + 0x298]
push eax
push dword [esi + 0x44]
push dword [esi + 0xc]
call fcn.00472680
add esp, 0xc
mov edi, dword [esi + 0x1c]
mov ebx, edx
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edx
lea ecx, [esi + 0x29c]
push 0x3fc
push 0
push ecx
mov dword [esi + 0xc], eax
call fcn.0054c590
add esp, 0xc
cmp edi, 0x101
mov dword [esi + 0x298], 1
jae 0x46d10a
mov ecx, dword [esi + 0x18]
lea eax, [esi + 0x20]
mov dword [esi + 0x6a8], 2
mov dword [esi + 0x10], ebx
push ebx
push eax
push ecx
lea eax, [esi + 0x298]
push eax
mov eax, dword [esi + 0xc]
push eax
push eax
call fcn.00472900
add esp, 0x18
push 0x400
push 0
lea eax, [esi + 0x298]
push eax
call fcn.0054c590
add esp, 0xc
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x54], edx
add eax, 3
and eax, 0x7ffffffc
cmp eax, 0x401
jae 0x46d12c
lea ecx, [edx*4]
mov dword [esi + 0x200], eax
mov dword [esi + 8], eax
cmp ecx, eax
mov dword [esi + 0x248], ecx
jne 0x46d14e
test edx, edx
je 0x46cc76
mov edx, dword [esi + 0xc]
dec ecx
nop dword [eax + eax]
cmp ecx, dword [esi + 8]
jae 0x46d0dc
mov eax, dword [edx]
mov edi, eax
mov ebx, eax
rol di, 8
shr ebx, 0x10
mov word [esi + ecx + 0x297], di
lea edi, [ecx - 3]
mov byte [esi + ecx + 0x296], bl
cmp edi, dword [esi + 8]
jae 0x46d0e0
shr eax, 0x18
add edx, 4
mov byte [esi + ecx + 0x295], al
add ecx, 0xfffffffc
dec dword [esi + 0x10]
jne 0x46cc30
mov eax, dword [esi + 8]
mov edx, dword [ebp + 0x1c]
mov ecx, eax
sub ecx, edx
jb 0x46d188
mov bl, byte [ebp + 0x20]
lea edi, [esi + ecx + 0x298]
mov ecx, edx
sub ecx, eax
nop word cs:[eax + eax]
nop
test ecx, ecx
je 0x46ccd6
mov eax, dword [esi + 0x14]
inc ecx
cmp byte [eax], 0
lea eax, [eax + 1]
mov dword [esi + 0x14], eax
je 0x46cca0
mov dword [esi + 0x6a8], 4
push 0x5ba4d4
push 0x31
push str.assertion_failed:_padding.iter__.all_b_b__0_
call fcn.005707b0
add esp, 0xc
jmp 0x46d1ef
mov eax, dword [esi + 8]
test eax, eax
je 0x46ccee
push 4
push eax
push dword [esi + 0xc]
call fcn.0043c2a0
mov edx, dword [ebp + 0x1c]
add esp, 0xc
test bl, bl
mov dword [esi + 0x6a8], 1
je 0x46cdc7
mov byte [esi + 7], 0
push edx
push edi
call fcn.00474b60
add esp, 8
mov ebx, edx
test edx, edx
je 0x46d08f
cmp byte [eax], 0
mov byte [esi + 0x14], 1
jne 0x46d093
cmp ebx, 1
je 0x46d093
cmp byte [eax + 1], 1
jne 0x46d093
cmp ebx, 3
jb 0x46d093
mov ecx, 2
cmp ebx, ecx
je 0x46d093
movzx edx, byte [eax + ecx]
inc ecx
cmp dl, 0xff
je 0x46cd46
test dl, dl
jne 0x46d093
mov edx, ebx
sub edx, ecx
add edx, ecx
jb 0x46d1c1
cmp ebx, edx
jb 0x46d1c1
mov edi, dword [ebp + 0x14]
mov dword [esi + 8], edx
mov edx, ebx
sub edx, edi
cmp edx, ecx
jne 0x46d093
add eax, ecx
push edi
push dword [ebp + 0x10]
push eax
call fcn.0054b2c4
add esp, 0xc
mov ecx, dword [esi + 8]
xor ecx, ebx
or ecx, eax
setne byte [esi + 0x14]
jmp 0x46d093
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 8]
shl ecx, 2
test ecx, ecx
je 0x46d07a
push 4
push ecx
push eax
call fcn.0043c2a0
add esp, 0xc
jmp 0x46d07a
mov eax, dword [ebp + 8]
mov dword [esi + 8], edi
mov byte [esi + 7], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x10], ecx
push ecx
mov dword [esi + 0xc], eax
call dword [eax + 0x18]
add esp, 4
movsd xmm0, qword [eax + 0x38]
movsd qword [esi + 0x88], xmm0
movsd xmm0, qword [eax + 0x30]
movsd qword [esi + 0x80], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [esi + 0x78], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esi + 0x70], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esi + 0x68], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x60], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov byte [esi + 7], 0
movsd qword [esi + 0x58], xmm1
movsd qword [esi + 0x50], xmm0
push 0x61cea8
mov dword [esi + 0x14], eax
call fcn.0046d320
mov eax, dword [esi + 0x14]
add esp, 4
mov dword [esi + 0xa8], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xac], 0
mov dword [esi + 0xb8], 0
mov dword [esi + 0xb4], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xdc], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x98], eax
mov dword [esi + 0xa0], 0
mov byte [esi + 7], 0
lea eax, [esi + 0x50]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call fcn.00471690
add esp, 0xc
lea eax, [esi + 0x128]
push 0xd8
lea ebx, [esi + 0x50]
push ebx
push eax
call fcn.0054ad50
add esp, 0xc
mov eax, dword [esi + 0x170]
mov edi, dword [eax + 0x48]
lea eax, [esi + 0x248]
push 0x50
push ebx
mov ebx, eax
push eax
call fcn.0054ad50
add esp, 0xc
cmp edi, 0x81
jae 0x46d1a8
mov ecx, dword [esi + 0x178]
lea eax, [esi + 0x17c]
mov byte [esi + 7], 0
lea edx, [esi + 0x200]
push ecx
push edi
push eax
push ebx
push edx
call fcn.00471410
add esp, 0x14
mov byte [esi + 7], 0
push dword [ebp + 0x1c]
push dword [esi + 8]
call fcn.00474b60
add esp, 8
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edx
mov dword [esi + 0x130], 0
mov byte [esi + 7], 0
push dword [esi + 0x40]
lea eax, [esi + 0x128]
push eax
lea eax, [esi + 0x200]
push eax
push dword [esi + 0x10]
mov eax, dword [esi + 0xc]
call dword [eax + 0x1c]
add esp, 0x10
test al, al
je 0x46d07e
mov bl, 1
jmp 0x46d096
mov eax, dword [esi + 0x130]
cmp eax, dword [esi + 0x12c]
setne bl
jmp 0x46d096
mov byte [esi + 0x14], 1
mov bl, byte [esi + 0x14]
mov eax, dword [esi + 0x1c]
shl eax, 2
test eax, eax
je 0x46d0ae
push 4
push eax
push dword [esi + 0x18]
call fcn.0043c2a0
add esp, 0xc
mov eax, dword [esi + 0x2c]
shl eax, 2
test eax, eax
je 0x46d0c6
push 4
push eax
push dword [esi + 0x28]
call fcn.0043c2a0
add esp, 0xc
mov eax, dword [esi + 0x6a0]
mov dword fs:[0], eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, ecx
jmp 0x46d0ea
mov dword [esi + 0x6a8], 4
mov dword [esi + 0x6a8], 4
push 0x5ba58c
push dword [esi + 8]
push edi
call fcn.00570800
add esp, 0xc
jmp 0x46d1ef
mov dword [esi + 0x6a8], 2
push 0x5c2a00
push 0x100
push edi
call fcn.005709d0
add esp, 0xc
jmp 0x46d1ef
mov dword [esi + 0x6a8], 4
push 0x5ba490
push 0x400
push eax
call fcn.005709d0
add esp, 0xc
jmp 0x46d1ef
mov dword [esi + 0x128], 0
mov dword [esi + 0x6a8], 4
lea eax, [esi + 0x128]
lea ecx, [esi + 0x248]
lea edx, [esi + 0x200]
push 0x5ba57c
push eax
push ecx
push edx
push 0
call fcn.0056bea0
add esp, 0x14
jmp 0x46d1ef
mov dword [esi + 0x6a8], 4
push 0x5ba428
push 0x23
push 0x5ba405
call fcn.005707b0
add esp, 0xc
jmp 0x46d1ef
mov byte [esi + 7], 0
push 0x5ba98c
push 0x80
push edi
call fcn.005709d0
add esp, 0xc
jmp 0x46d1ef
mov byte [esi + 7], 0
mov dword [esi + 0x6a8], 1
lea eax, [esi + 0x128]
push 0x5baac4
push 0x5baa4c
push eax
push 0x2b
push 0x5baa20
call fcn.005708f0
add esp, 0x14
ud2