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

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov esi, ecx
mov edi, dword [ebx]
cmp byte [edi + 0x35], 0
je 0x1005f20a
mov edx, dword [ebp + 0xc]
lea ecx, [edi + 0x84]
add edx, 0x28
mov dword [ebp + 8], edx
call fcn.10053a50
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x25]
movzx ecx, byte [edi + 0x3c]
xor edx, ecx
or eax, edx
je 0x1005f20a
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [edi + 0x84], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [edi + 0x94], xmm0
mov eax, dword [edx + 0x18]
mov dword [edi + 0x9c], eax
mov al, byte [ecx + 0x25]
mov byte [edi + 0x3c], al
cmp byte [ebx + 0x11], 0
jne 0x1005f20a
movups xmm0, xmmword [edx]
movups xmmword [edi + 0x68], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [edi + 0x78], xmm0
mov eax, dword [edx + 0x18]
mov dword [edi + 0x80], eax
mov al, byte [ecx + 0x25]
mov byte [edi + 0x3b], al
add dword [ebx + 0x38], 1
adc dword [ebx + 0x3c], 0
cmp ebx, dword [edi + 0x10]
jne 0x1005f2de
mov ebx, dword [edi + 0xc]
mov dword [edi + 0xc], 0
test ebx, ebx
je 0x1005f272
cmp dword [ebx + 4], 0
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [ebp + 8], eax
je 0x1005f241
push ebx
mov ecx, eax
call fcn.1006cb90
mov eax, dword [ebp + 8]
cmp dword [ebx + 0x18], 0
lea ecx, [ebx + 0x18]
je 0x1005f25a
push ecx
lea ecx, [eax + 0x1c]
call fcn.1006f310
mov dword [ebx + 0x18], 0
mov ecx, dword [ebp + 8]
push ebx
push 0x1006deb0
add ecx, 0x21e8
mov byte [ebx + 0x14], 0
call fcn.10054840
mov eax, dword [edi + 8]
mov ecx, edi
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [edi + 8], eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
inc dword [esi + 0x22d0]
call fcn.1006e410
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, dword [esi + 0x2298]
or ecx, dword [esi + 0x229c]
mov dword [esi + 0x22a0], eax
mov dword [esi + 0x22a4], edx
jne 0x1005f2cc
mov dword [esi + 0x2298], eax
mov dword [esi + 0x229c], edx
mov ecx, dword [esi]
test ecx, ecx
je 0x1005f2d6
mov eax, dword [ecx]
call dword [eax]
push edi
mov ecx, esi
call fcn.1005fbf0
mov eax, dword [edi + 8]
test eax, eax
je 0x1005f31f
cmp byte [eax + 0x14], 2
jne 0x1005f31f
mov byte [eax + 0x14], 3
lea edx, [edi + 0x28]
mov ebx, 1
mov eax, dword [edx]
mov ecx, eax
or ecx, ebx
lock cmpxchg dword [edx], ecx
jne 0x1005f2f9
test eax, eax
jne 0x1005f31f
mov dword [edi + 0x2c], eax
lea ecx, [edi + 0x2c]
mov eax, dword [edi]
mov eax, dword [eax + 0x80]
mov dword [eax], edi
mov eax, dword [edi]
mov dword [eax + 0x80], ecx
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp + 0x10]
and eax, 0xfffffefb
test ecx, ecx
jne 0x1005f35f
or eax, 0xc00
mov dword [edi + 0x20], eax
add dword [esi + 0x2238], 1
mov eax, dword [ebp + 0xc]
adc dword [esi + 0x223c], ecx
mov eax, dword [eax + 0x1c]
add dword [esi + 0x2248], eax
lea eax, [ecx + 3]
adc dword [esi + 0x224c], ecx
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
test al, 0x82
jne 0x1005f36a
or eax, 0x80
jmp 0x1005f36e
mov byte [edi + 0x34], 1
mov ebx, dword [ebp + 0xc]
or eax, 0xc00
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0xc], eax
movzx edx, byte [eax]
shr edx, 4
cmp edx, 4
jne 0x1005f3e4
cmp ecx, 0x14
jb 0x1005f3b4
mov eax, dword [eax + 0xc]
lea ecx, [esi + 0x2c]
bswap eax
push eax
call fcn.10002210
cmp eax, edi
jne 0x1005f3b4
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 2]
mov ch, al
mov cl, ah
movzx ecx, cx
cmp ecx, 0x14
jae 0x1005f40f
inc dword [esi + 0x2288]
add dword [esi + 0x2268], 1
adc dword [esi + 0x226c], 0
mov eax, dword [ebx + 0x1c]
add dword [esi + 0x2270], eax
mov eax, 3
adc dword [esi + 0x2274], 0
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
cmp edx, 6
jne 0x1005f3b4
cmp ecx, 0x28
jb 0x1005f3b4
add eax, 8
lea ecx, [esi + 0x20]
push eax
call fcn.10001fc0
cmp eax, edi
jne 0x1005f3b4
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 4]
mov ch, al
mov cl, ah
movzx ecx, cx
add ecx, 0x28
cmp ecx, dword [ebp + 0x10]
ja 0x1005f3b4
add dword [esi + 0x2238], 1
pop edi
adc dword [esi + 0x223c], 0
add dword [esi + 0x2240], ecx
adc dword [esi + 0x2244], 0
mov eax, dword [ebx + 0x1c]
add dword [esi + 0x2248], eax
mov eax, 2
adc dword [esi + 0x224c], 0
pop esi
mov dword [ebx + 0x1c], ecx
pop ebx
pop ebp
ret 0xc