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

Disassembly:
push 0xffffffffffffffff
push 0x101807f3
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c6444]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
xor edi, edi
cmp dword [esi + 0x40], edi
jne 0x1005a0f3
cmp dword [esi + 0x44], edi
je 0x1005a50c
lea ecx, [esp + 0x18]
call fcn.100ab320
mov dword [esp + 0x1c], eax
mov byte [eax + 0x25], 1
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 8], eax
mov dword [esp + 0x20], edi
lea eax, [esi + 8]
mov dword [esp + 0x6c], eax
add eax, 4
push eax
mov dword [esp + 0xac], edi
xor ebp, ebp
mov dword [esp + 0x6c], 0x101975f4
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x28]
lea ebx, [esi + 0x24]
mov esi, dword [eax]
mov byte [esp + 0xa8], 1
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], eax
mov edi, edi
test ebx, ebx
je 0x1005a16f
mov eax, dword [esp + 0x14]
add eax, 0x24
cmp ebx, eax
je 0x1005a174
call fcn.1015828d
cmp esi, dword [esp + 0x3c]
je 0x1005a216
test ebx, ebx
jne 0x1005a187
call fcn.1015828d
cmp esi, dword [ebx + 4]
jne 0x1005a191
call fcn.1015828d
lea ecx, [esi + 0x28]
mov dword [esp + 0x2c], ecx
call fcn.1005c5c0
cmp esi, dword [ebx + 4]
mov dword [esp + 0x40], eax
jne 0x1005a1ab
call fcn.1015828d
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x60], edx
push ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], eax
call fcn.10056af0
cmp esi, dword [ebx + 4]
jne 0x1005a1f3
call fcn.1015828d
mov ecx, dword [esp + 0x2c]
call fcn.100dc790
add edi, eax
lea ecx, [esp + 0x24]
adc ebp, edx
call fcn.10053bd0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
jmp 0x1005a160
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x44]
mov esi, dword [ebx + 0x40]
mov edx, edi
add edx, dword [esp + 0xb0]
mov eax, ebp
adc eax, dword [esp + 0xb4]
cmp eax, ecx
jg 0x1005a278
jl 0x1005a23c
cmp edx, esi
jae 0x1005a278
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov esi, ecx
push edx
push esi
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
mov dword [esp + 0xbc], 0xffffffff
call fcn.100570c0
mov edx, dword [esp + 0x1c]
push edx
jmp 0x1005a504
mov eax, dword [esp + 0x1c]
sub edi, esi
sbb ebp, ecx
add dword [esp + 0xb0], edi
mov ecx, dword [eax]
lea edx, [esp + 0x18]
adc dword [esp + 0xb4], ebp
mov esi, edx
mov edi, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], eax
test esi, esi
je 0x1005a2b0
lea eax, [esp + 0x18]
cmp esi, eax
je 0x1005a2b5
call fcn.1015828d
cmp edi, dword [esp + 0x4c]
je 0x1005a4cc
test esi, esi
jne 0x1005a2c8
call fcn.1015828d
cmp edi, dword [esi + 4]
jne 0x1005a2d2
call fcn.1015828d
add edi, 0x10
push edi
lea ecx, [ebx + 0x24]
call fcn.10054210
lea esi, [ebx + 0x24]
test esi, esi
mov ebp, eax
mov dword [esp + 0x44], ebp
jne 0x1005a2f0
call fcn.1015828d
mov dword [esp + 0x40], esi
mov esi, dword [esi + 4]
cmp ebp, esi
je 0x1005a32a
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + edi]
mov dl, byte [eax + ebp + 0x10]
cmp cl, dl
ja 0x1005a446
jb 0x1005a32a
cmp eax, 0x13
jne 0x1005a322
mov cl, byte [edi + 0x13]
cmp cl, byte [ebp + 0x23]
je 0x1005a446
add eax, 1
cmp eax, 0x14
jb 0x1005a300
lea eax, [ebx + 0x24]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x14], edx
mov eax, edx
mov edi, dword [eax]
test edi, edi
mov esi, dword [eax + 4]
jne 0x1005a34d
call fcn.1015828d
cmp esi, dword [edi + 4]
jne 0x1005a357
call fcn.1015828d
lea ecx, [esi + 0x28]
call fcn.100dc790
sub dword [esp + 0xb0], eax
sbb dword [esp + 0xb4], edx
cmp esi, dword [edi + 4]
jne 0x1005a377
call fcn.1015828d
lea eax, [esp + 0x7c]
push eax
lea ecx, [esi + 0x28]
call fcn.100dcb80
mov ebp, eax
cmp esi, dword [edi + 4]
mov byte [esp + 0xa8], 2
jne 0x1005a398
call fcn.1015828d
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esi + 0x28]
call fcn.1005c600
push eax
push ebp
mov ecx, ebx
call fcn.100568d0
cmp dword [esp + 0x94], 0x10
mov byte [esp + 0xa8], 1
jb 0x1005a3d0
mov edx, dword [esp + 0x80]
push edx
call fcn.10157f3b
add esp, 4
cmp esi, dword [edi + 4]
jne 0x1005a3da
call fcn.1015828d
lea eax, [esp + 0x7c]
push eax
lea ecx, [esi + 0x28]
call fcn.1005c850
mov edi, eax
lea esi, [ebx + 0x30]
push edi
mov ecx, esi
mov byte [esp + 0xac], 3
call fcn.10054d80
test esi, esi
mov ebp, eax
jne 0x1005a407
call fcn.1015828d
push edi
mov ecx, esi
call fcn.10054ce0
test esi, esi
mov edi, eax
jne 0x1005a41a
call fcn.1015828d
mov eax, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
test eax, eax
je 0x1005a42c
cmp eax, esi
je 0x1005a431
call fcn.1015828d
cmp dword [esp + 0x28], ebp
je 0x1005a453
lea ecx, [esp + 0x24]
call fcn.10053dc0
mov eax, dword [esp + 0x24]
jmp 0x1005a424
lea eax, [esp + 0x40]
mov dword [esp + 0x14], eax
jmp 0x1005a33f
push ebp
push esi
push edi
push esi
lea ecx, [esp + 0xa8]
push ecx
mov ecx, esi
call fcn.10058ed0
cmp dword [esp + 0x94], 0x10
mov byte [esp + 0xa8], 1
jb 0x1005a488
mov edx, dword [esp + 0x80]
push edx
call fcn.10157f3b
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [ebx + 0x24]
call fcn.10055420
cmp dword [esp + 0xb4], 0
jl 0x1005a4cc
jg 0x1005a4b6
cmp dword [esp + 0xb0], 0
jb 0x1005a4cc
lea ecx, [esp + 0x2c]
call fcn.1001d220
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
jmp 0x1005a2a4
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
mov esi, ecx
push esi
lea edx, [esp + 0x80]
push edx
mov dword [esp + 0xbc], 0xffffffff
call fcn.100570c0
mov eax, dword [esp + 0x1c]
push eax
call fcn.10157f3b
add esp, 4
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 8