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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
mov eax, dword [0x50b06c]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push esi
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0x50f310
nop dword [eax]
mov edi, dword [esp + 0x1c]
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [0x50f310]
mov eax, esi
mov ecx, dword [0x50f314]
mov edx, ecx
mov ebx, esi
lock cmpxchg8b qword [edi]
cmp esi, eax
jne 0x4718c0
cmp ecx, edx
jne 0x4718c0
mov edi, dword [esp + 0x20]
test ecx, ecx
jne 0x4718ee
test esi, esi
je 0x471bd9
mov eax, dword [0x50f2fc]
cmp eax, 1
jne 0x4719a1
nop dword [eax]
call fcn.0048664d
push 0
push 0x64
push edx
push eax
call fcn.004883f0
mov esi, eax
push 0
add esi, 0xbebc200
push 0x3b9aca00
adc edx, 0
push edx
push esi
call fcn.004be3d0
push 0
push 0x3b9aca00
push edx
push eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
call fcn.004883f0
sub esi, eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x38], esi
movaps xmm0, xmmword [esp + 0x30]
push eax
movaps xmmword [esp + 0xc4], xmm0
call fcn.00486430
mov eax, dword [0x50f2fc]
add esp, 4
cmp eax, 1
je 0x471900
mov edi, dword [esp + 0x1c]
mov esi, dword [0x50f310]
mov eax, esi
mov ecx, dword [0x50f314]
mov edx, ecx
mov ebx, esi
lock cmpxchg8b qword [edi]
cmp esi, eax
jne 0x471970
cmp ecx, edx
jne 0x471970
mov edi, dword [esp + 0x20]
or esi, ecx
je 0x471bd9
mov ecx, edi
call fcn.00471c80
mov eax, dword [edi + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x1c]
nop dword [eax]
nop word [eax + eax]
mov esi, dword [0x50f310]
mov eax, esi
mov ecx, dword [0x50f314]
mov edx, ecx
mov ebx, esi
lock cmpxchg8b qword [edi]
cmp esi, eax
jne 0x4719c0
cmp ecx, edx
jne 0x4719c0
mov edi, dword [esp + 0x20]
cmp esi, dword [esp + 0x18]
jne 0x471bcd
cmp ecx, dword [esp + 0x14]
jne 0x471bcd
mov eax, dword [edi + 0x30]
and eax, 7
or eax, 0
jne 0x471a08
mov ecx, edi
call fcn.004d8b00
mov edx, dword [edi + 0x40]
lea esi, [edi + 0x4c0]
mov dword [esp + 0x18], esi
mov eax, dword [edx + 4]
lea eax, [eax + eax*8]
add eax, dword [edi + 0x434]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea ecx, [eax + ecx*2]
lea eax, [edi + 0x50]
push eax
push esi
push dword [edi + 0x3bc]
lea eax, [edi + 0x290]
push eax
mov eax, dword [ecx*4 + 0x4ffa54]
call eax
add esp, 0x10
xor ecx, ecx
mov dword [esp + 0x14], ecx
nop
mov eax, dword [esi + 0x1c]
cmp eax, dword [edi + 0x3cc]
ja 0x471b96
jb 0x471a70
mov eax, dword [esi + 0x18]
cmp eax, dword [edi + 0x3c8]
jae 0x471b96
movups xmm0, xmmword [edi + 0x478]
mov eax, dword [edi + 0x3b4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x3c0]
movups xmmword [esp + 0x7c], xmm0
mov dword [esp + 0x4c], eax
movups xmm0, xmmword [edi + 0x488]
mov eax, dword [edi + 0x3bc]
imul eax, ecx
movups xmmword [esp + 0x8c], xmm0
push 0x50f26c
movups xmm0, xmmword [edi + 0x498]
movups xmmword [esp + 0xa0], xmm0
movups xmm0, xmmword [edi + 0x4a8]
mov eax, dword [eax + edi + 0x2b7]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x430]
movups xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x78], eax
movups xmm0, xmmword [esi]
mov eax, dword [edi + 0x434]
mov dword [esp + 0x7c], eax
movups xmmword [esp + 0x58], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [esp + 0x68], xmm0
call dword [0x4eb0d8]
mov eax, dword [0x50f3f0]
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x28], eax
mov ecx, dword [eax + 4]
push ecx
push eax
mov dword [esp + 0x34], ecx
call fcn.00473b80
mov edx, dword [0x50f3f4]
mov ecx, 0x2108420
sub ecx, edx
cmp ecx, 1
jb 0x471c00
mov ecx, dword [esp + 0x24]
inc edx
mov dword [0x50f3f4], edx
push 0x50f26c
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
call dword [0x4eb0dc]
cmp dword [0x50f290], 1
mov edx, dword [0x50f28c]
jne 0x471b92
mov ch, 1
mov esi, 0x50f2f8
mov al, byte [esi]
mov cl, al
or cl, ch
lock cmpxchg byte [esi], cl
jne 0x471b6a
test al, al
jne 0x471b8e
push 0x50f2d8
push 0
push 0
push dword [edx + 0x1c]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
je 0x471bee
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x3bc]
add esi, 0x20
imul eax, ecx
inc ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
inc dword [eax + edi + 0x2b7]
cmp ecx, 3
jb 0x471a50
add dword [edi + 0x30], 3
adc dword [edi + 0x34], 0
call fcn.004864d0
jmp 0x4719a1
mov ecx, edi
call fcn.00471c80
jmp 0x4718b0
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004879f1
mov esp, ebp
pop ebp
ret
call dword [0x4eb0cc]
mov edx, str.PostQueuedCompletionStatus
mov ecx, eax
call fcn.00482240
push str.list_T__too_long
call fcn.00485288
int3