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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x10052004]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [eax + 0x5c]
push esi
push edi
mov dword [esp + 0x28], eax
xor esi, esi
xor eax, eax
mov dword [esp + 0x30], ecx
xor edi, edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x10], 0x80030100
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], esi
mov word [esp + 0x78], di
test edx, edx
je 0x10032fbb
mov dword [edx], eax
call fcn.10006f50
mov edi, eax
test edi, edi
js 0x10033041
cmp dword [ebp + 0x10], esi
jne 0x1003303c
cmp dword [ebp + 0x18], esi
jne 0x1003303c
mov ecx, dword [ebp + 0x14]
xor edx, edx
call fcn.10006e40
mov edi, eax
test edi, edi
js 0x10033041
mov eax, dword [ebp + 0x14]
test eax, 0x21000
jne 0x10032fc5
test eax, 0x4050000
jne 0x10032fcc
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x60], 0x4c464445
jne 0x10032fd3
jmp 0x10018b90
push 0x124f80
lea ecx, [ebx + 0x38]
call fcn.1000e800
mov edi, eax
test edi, edi
js 0x10018bae
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
jne 0x10018d3c
mov dword [esp + 0x10], edi
call fcn.1001a850
mov ecx, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x34]
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x1c], eax
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
test ecx, ecx
jne 0x10018d4f
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], esi
mov eax, dword fs:[0x18]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0xf80]
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ecx
mov dword [eax + 0xc], ebx
test edi, edi
js 0x10018d5a
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x58]
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x10], eax
mov eax, edx
lea esi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10018c30
sub eax, esi
sar eax, 1
lea eax, [eax*2 + 2]
movzx esi, ax
cmp esi, 0x40
ja 0x10032ff9
test edx, edx
je 0x10018c68
movzx eax, si
push eax
push edx
lea eax, [esp + 0x40]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x24]
mov word [esp + 0x78], si
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x40]
mov ecx, edi
push 2
push eax
call fcn.10018ef0
mov edi, eax
cmp edi, 0x8000000a
je 0x10033003
cmp edi, 0x80030204
je 0x10033003
test edi, edi
js 0x10018d5a
mov ecx, dword [esp + 0x34]
xor esi, esi
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test esi, esi
jne 0x1003304c
test eax, eax
je 0x10018cf2
test ecx, ecx
jne 0x10033069
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov eax, dword fs:[0x18]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0xf80]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
cmp dword [esp + 0x10], 0
jl 0x10018d23
mov esi, dword [ebx + 0x38]
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentThreadId]
cmp dword [esi + 8], eax
jne 0x10018d23
add dword [esi + 4], 0xffffffff
jne 0x10018d63
mov eax, dword [ebx + 0x38]
or ecx, 0xffffffff
mov dword [eax + 8], 0
mov eax, dword [ebx + 0x38]
lock xadd dword [eax], ecx
jns 0x10018d6b
mov ecx, dword [esp + 0x84]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100281a0
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp eax, dword [ecx + 8]
je 0x10018bae
jmp 0x10032fdd
mov ecx, dword [ecx + 8]
sub ecx, 8
jmp 0x10018bd2
mov esi, dword [esp + 0x24]
jmp 0x10018cb1
mov ecx, dword [ebx + 0x38]
lock dec dword [ecx]
jmp 0x10018d23
push dword [ebx + 0x3c]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_SetEvent]
jmp 0x10018d23
mov edi, 0x80030009
jmp 0x10033045
mov edi, 0x800300ff
jmp 0x10033041
mov edi, 0x80030001
jmp 0x10033041
mov edi, 0x80030006
jmp 0x10018cb1
call fcn.10028a1b
mov edi, eax
test edi, edi
jns 0x10018bae
lea ecx, [ebx + 0x38]
call fcn.1000e7b5
jmp 0x10018bae
mov esi, 0x40
jmp 0x10018c52
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x10]
push eax
push dword [ecx + 0x5c]
push ecx
push edi
add ecx, 0x34
call fcn.1003c319
mov ebx, dword [esp + 0x14]
mov edi, eax
test edi, edi
je 0x10018b90
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jmp 0x10018cb9
mov edi, 0x80030057
mov eax, dword [esp + 0x1c]
xor ecx, ecx
jmp 0x10018cb9
mov eax, dword [esi]
push esi
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100532e8]
call esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
jmp 0x10018cc1
push ecx
push 0
push dword [ecx + 0x34]
push dword [ecx + 0x30]
push dword [ecx + 0x2c]
mov ecx, eax
call fcn.10018508
jmp 0x10018cf2