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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x40], edi
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi]
call fcn.100cdb30
test eax, eax
jne 0x100c95f6
nop dword [eax + eax]
cmp dword [esi + 0x24], 0
jne 0x100c95f4
mov ebx, dword [esi + 0x34]
mov eax, ebx
mov edx, dword [esi + 0x30]
mov ecx, edx
push ebx
push edx
push 0
add ecx, 1
mov dword [esp + 0x58], edx
push 0
push 0
adc eax, 0
mov dword [esi + 0x30], ecx
push 0
lea edx, [esp + 0x60]
mov dword [esp + 0x70], ebx
mov ecx, esi
mov dword [esi + 0x34], eax
call fcn.100c8690
mov ecx, dword [esp + 0x48]
mov ebp, eax
mov eax, dword [esi + 0x70]
xor edx, edx
mov dword [esp + 0x1c], eax
xorps xmm0, xmm0
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x30], eax
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], ecx
test ebp, ebp
jne 0x100c8f42
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
test ecx, ecx
jne 0x100c8f42
mov eax, dword [edi + 8]
xor ebx, ebx
mov edi, dword [esi + 0x64]
sub edi, dword [esi + 0x60]
mov dword [esp + 0x50], ecx
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
nop dword [eax]
test eax, eax
jne 0x100c8af3
mov eax, dword [esi + 0x14]
mov ecx, eax
mov edx, dword [esi]
add edx, 0x10
mov eax, dword [eax]
call eax
mov dword [esp + 0x54], eax
test eax, eax
je 0x100c8de9
mov dword [eax], 0
test ebx, ebx
je 0x100c8aec
mov dword [ebx], eax
jmp 0x100c8af3
mov ecx, dword [esp + 0x40]
mov dword [ecx + 8], eax
add eax, 0x10
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], eax
test edi, edi
je 0x100c8b26
mov eax, dword [esi + 0x60]
mov ebx, edi
add eax, 0x10
mov dword [esp + 0x20], edi
add eax, dword [esi + 0x5c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], eax
jmp 0x100c8c2c
mov edi, dword [esi]
mov ebp, eax
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x70], eax
test edi, edi
je 0x100c8b68
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], edi
push ecx
mov ecx, eax
mov edx, ebp
mov eax, dword [eax]
call eax
mov ecx, eax
mov eax, dword [esp + 0x5c]
add ebx, eax
mov dword [esp + 0x3c], ecx
add ebp, eax
sub edi, eax
test ecx, ecx
jne 0x100c8b6e
test eax, eax
je 0x100c8b68
mov eax, dword [esp + 0x70]
test edi, edi
jne 0x100c8b37
xor ecx, ecx
mov dword [esp + 0x3c], ecx
add dword [esp + 0x20], ebx
mov eax, ebx
mov edi, dword [esp + 0x28]
adc edi, 0
cmp dword [esp + 0x44], 0
mov dword [esp + 0x28], edi
cmovne eax, dword [esp + 0x30]
add dword [esi + 0x68], ebx
mov dword [esp + 0x30], eax
adc dword [esi + 0x6c], 0
xor edx, edx
cmp ebx, dword [esi]
setne dl
mov dword [esp + 0x1c], edx
je 0x100c8ba8
mov dword [esi + 0x70], 1
test ecx, ecx
je 0x100c8bc2
mov dword [esi + 0x48], ecx
xor ebp, ebp
mov dword [esi + 0x70], 1
mov dword [esp + 0x1c], 1
jmp 0x100c8bc6
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, edi
sub ecx, dword [esp + 0x38]
sbb eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
jne 0x100c8bdf
cmp ecx, 1
jb 0x100c8c28
push dword [esp + 0x58]
lea edx, [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x50]
push 0
push 0
push 0
push 0
call fcn.100c8690
mov ecx, dword [esp + 0x48]
mov ebp, eax
mov dword [esp + 0x14], ecx
test ebp, ebp
jne 0x100c8e88
test ecx, ecx
jne 0x100c8e88
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0xa8], ebx
cmp dword [esp + 0x44], eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x44]
sete al
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0xb8], 1
mov eax, dword [eax]
call eax
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x98], 1
mov dword [esp + 0x50], edx
cmp eax, 1
je 0x100c8e4c
test edi, edi
mov edi, dword [esp + 0xa8]
je 0x100c8cc9
push edi
push dword [esp + 0x1c]
push dword [esp + 0x70]
call fcn.100d8b00
mov eax, dword [esp + 0xbc]
add esp, 0xc
add dword [esi + 0x60], edi
test eax, eax
jne 0x100c8d31
cmp dword [esp + 0x1c], eax
jne 0x100c8d44
cmp edi, ebx
jne 0x100c8d00
mov eax, dword [esp + 0x54]
mov ebx, eax
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], ebx
mov eax, dword [eax]
mov dword [esp + 0x54], eax
test edi, edi
je 0x100c8ac0
xor edi, edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
jmp 0x100c8ab5
mov eax, 1
mov dword [esp + 0x18], 0
xor ebx, ebx
mov dword [esp + 0x38], 0
mov ebp, 0xb
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
jmp 0x100c8f6d
mov ecx, dword [esp + 0x1c]
cmp eax, 3
mov edx, 1
cmove ecx, edx
mov dword [esp + 0x1c], ecx
mov edx, 1
mov dword [esp + 0x24], edx
cmp edi, ebx
jne 0x100c8d68
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
jmp 0x100c8e94
cmp eax, 3
jne 0x100c8daa
add dword [esp + 0x18], edi
xor ecx, ecx
mov edx, dword [esp + 0x30]
sub ebx, edi
cmp dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ebx
setne cl
sub dword [esp + 0x20], ebx
mov dword [esp + 0x34], ecx
sbb dword [esp + 0x28], 0
cmp dword [esp + 0x44], 0
mov ecx, dword [esp + 0x14]
cmove edx, edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x24]
jmp 0x100c8eac
cmp dword [esp + 0x2c], 0
je 0x100c8dbf
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], 0
jmp 0x100c8e32
mov eax, dword [esi + 0x5c]
test eax, eax
jne 0x100c8de2
mov eax, dword [esi + 0x14]
mov ecx, eax
mov edx, dword [esi]
add edx, 0x10
mov eax, dword [eax]
call eax
test eax, eax
je 0x100c8de9
mov edi, dword [esp + 0xa8]
mov dword [esi + 0x5c], eax
lea ecx, [eax + 0x10]
test ecx, ecx
jne 0x100c8e05
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x84], 1
jmp 0x100c8e90
mov eax, dword [esp + 0x18]
sub ebx, edi
sub dword [esp + 0x20], ebx
push ebx
sbb dword [esp + 0x2c], 0
add eax, edi
push eax
push ecx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x60], 0
call fcn.100d8b00
mov edi, dword [esp + 0xb4]
add esp, 0xc
cmp dword [esp + 0x44], 0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
cmove edx, edi
mov dword [esp + 0x1c], 0
jmp 0x100c8e8c
mov dword [esp + 0x1c], 1
mov dword [esp + 0x8c], 1
test edi, edi
je 0x100c8e74
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x70]
call fcn.100d8b00
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
jmp 0x100c8e90
mov edx, dword [esp + 0x30]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
test ebp, ebp
jne 0x100c8f05
lea edi, [esi + 0xb0]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x88], ebp
je 0x100c8ee6
mov eax, dword [esp + 0x58]
cmp eax, dword [esi + 0x94]
jb 0x100c8ee6
ja 0x100c8edf
mov eax, dword [esp + 0x4c]
cmp eax, dword [esi + 0x90]
jbe 0x100c8ee6
mov eax, 1
jmp 0x100c8ee8
xor eax, eax
mov ebp, dword [esi + 0x9c]
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
xor ebx, ebx
mov dword [esp + 0x2c], ebx
test ebp, ebp
jne 0x100c8f58
test edx, edx
je 0x100c8f54
test ecx, ecx
jne 0x100c8f58
mov eax, dword [esi + 0x18]
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x1c]
mov eax, dword [eax + 4]
call eax
mov ebx, eax
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x100c8f69
mov eax, 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], eax
jmp 0x100c8f6d
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
jmp 0x100c8f09
test ecx, ecx
je 0x100c8f69
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
jmp 0x100c8f6d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], 0
mov dword [esp + 0x88], 0
test eax, eax
jne 0x100c9052
mov eax, dword [esi + 0x58]
mov edx, eax
cmp eax, dword [esi + 0x54]
jae 0x100c9027
cmp dword [esp + 0x50], 0
je 0x100c9027
lea eax, [eax + eax*4]
lea eax, [eax + 0x19]
lea edi, [esi + eax*8]
cmp dword [edi + 0x20], 0
lea ecx, [edi + 0x20]
je 0x100c8fba
call fcn.100cda90
jmp 0x100c8fbf
call fcn.100cd9e0
test eax, eax
jne 0x100c8ff2
cmp dword [edi + 0x1c], eax
lea ecx, [edi + 0x1c]
je 0x100c8fd2
call fcn.100cda90
jmp 0x100c8fd7
call fcn.100cd9e0
test eax, eax
jne 0x100c8ff2
cmp dword [edi + 0x18], eax
lea ecx, [edi + 0x18]
jne 0x100c9000
push edi
mov edx, fcn.100c9600
call fcn.100cdc90
test eax, eax
je 0x100c9000
jle 0x100c8ffc
movzx eax, ax
or eax, 0x80070000
test eax, eax
jne 0x100c9009
mov edx, dword [esi + 0x58]
inc edx
mov dword [esi + 0x58], edx
jmp 0x100c9027
mov edx, dword [esi + 0x58]
cmp edx, 1
jne 0x100c9024
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x88], eax
jmp 0x100c9056
mov dword [esi + 0x54], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 4]
inc ecx
cmp ecx, edx
sbb eax, eax
and eax, ecx
add eax, 5
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
lea ecx, [edi + 0x1c]
mov dword [esp + 0x70], edi
call fcn.100cdac0
test eax, eax
jne 0x100c95f6
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x90], xmm0
test ebp, ebp
jne 0x100c927d
test ecx, ecx
je 0x100c927d
test ebx, ebx
jne 0x100c927d
mov ecx, dword [esp + 0x40]
lea eax, [ebp + 1]
mov edx, dword [esp + 0x78]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x7c]
test eax, eax
je 0x100c90cc
mov ebx, dword [esp + 0x30]
jmp 0x100c90f0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub edi, edx
mov ebx, dword [esi]
sbb eax, ecx
mov dword [esp + 0x60], 0
cmp dword [esp + 0x60], eax
jb 0x100c90f0
ja 0x100c90ee
cmp ebx, edi
jbe 0x100c90f0
mov ebx, edi
add edx, ebx
mov dword [esp + 0x68], 1
mov dword [esp + 0x78], edx
adc ecx, 0
mov dword [esp + 0x7c], ecx
cmp edx, dword [esp + 0x20]
jne 0x100c9118
cmp ecx, dword [esp + 0x28]
jne 0x100c9118
mov eax, 1
jmp 0x100c911a
xor eax, eax
mov edi, dword [esi + 0x18]
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esi + 0x1c]
push eax
mov eax, dword [esp + 0x4c]
add eax, 0x10
push ebx
push eax
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
mov eax, dword [edi + 8]
call eax
mov ebx, eax
mov dword [esp + 0x2c], ebx
test ebx, ebx
jne 0x100c9224
cmp dword [esp + 0x68], eax
jne 0x100c92a1
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x20]
jne 0x100c917b
cmp ecx, dword [esp + 0x28]
je 0x100c92a1
mov edi, dword [esp + 0x90]
mov eax, edx
sub eax, dword [esp + 0x50]
mov ebx, ecx
sbb ebx, dword [esp + 0x44]
sub edi, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x94]
sbb ebx, dword [esp + 0x54]
cmp dword [esp + 0x60], 0
ja 0x100c91b8
jb 0x100c91af
cmp eax, 1
jae 0x100c91b8
test ebx, ebx
jne 0x100c91b8
cmp edi, 1
jb 0x100c920a
push dword [esp + 0x58]
lea edx, [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x50]
push ebx
push edi
push dword [esp + 0x70]
push eax
call fcn.100c8690
mov edi, dword [esp + 0x48]
mov ebp, eax
mov dword [esp + 0x14], edi
test ebp, ebp
jne 0x100c921b
test edi, edi
jne 0x100c921b
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edi
mov ebx, dword [esp + 0x3c]
xor eax, eax
mov ebx, dword [ebx]
mov dword [esp + 0x3c], ebx
jmp 0x100c90c2
mov ebx, dword [esp + 0x2c]
jmp 0x100c92a5
lea edi, [esi + 0xb0]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x88], 0
je 0x100c9256
mov eax, dword [esp + 0x58]
cmp eax, dword [esi + 0x94]
ja 0x100c9274
mov eax, dword [esp + 0x4c]
jb 0x100c925a
cmp eax, dword [esi + 0x90]
jae 0x100c9274
jmp 0x100c925a
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x94], eax
mov dword [esi + 0x88], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100c92a1
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x20]
call fcn.100cdb30
test eax, eax
jne 0x100c95f6
cmp dword [esi + 0x24], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x60], 1
mov dword [esp + 0x3c], eax
jne 0x100c95f4
cmp dword [esi + 0x50], 0
je 0x100c92ef
mov edi, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x48], edi
jmp 0x100c9366
mov ecx, dword [esp + 0x84]
test ebx, ebx
je 0x100c930f
cmp ebx, 2
mov dword [esi + 0x50], 1
mov eax, 1
mov dword [esi + 0x4c], ebx
cmove ecx, eax
mov eax, dword [esp + 0x88]
test eax, eax
je 0x100c932c
mov dword [esi + 0x50], 1
mov dword [esi + 0x40], eax
mov dword [esp + 0x3c], 0
test ecx, ecx
je 0x100c9346
mov dword [esi + 0x50], 1
mov dword [esi + 0x38], 1
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x8c], 0
je 0x100c9366
mov dword [esi + 0x50], 1
mov dword [esi + 0x3c], 1
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x24], 0
je 0x100c944d
test edi, edi
je 0x100c9387
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x90], xmm0
mov edi, dword [esp + 0x78]
sub edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x7c]
sbb ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x90]
sub ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x94]
sbb eax, dword [esp + 0x54]
mov dword [esp + 0x8c], eax
lea eax, [esi + 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xa0]
mov edx, dword [esi + 0xa8]
add eax, edi
mov edi, dword [esi + 0xa4]
mov ecx, dword [esi + 0xac]
adc edi, ebx
add edx, ebp
mov dword [esp + 0x88], eax
mov dword [esi + 0xa0], eax
adc ecx, dword [esp + 0x8c]
cmp dword [esi + 0x9c], 0
mov dword [esi + 0xa4], edi
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], ecx
jne 0x100c9436
mov eax, dword [esi + 0x98]
test eax, eax
je 0x100c9436
push ecx
push edx
push edi
push dword [esp + 0x94]
mov ecx, eax
mov eax, dword [eax]
call eax
test eax, eax
je 0x100c9436
mov dword [esi + 0x9c], 0xa
mov ebp, dword [esi + 0x9c]
lea eax, [esi + 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
test ebx, ebx
sete cl
cmp dword [esp + 0x98], 0
mov dword [esp + 0x9c], ecx
je 0x100c9532
test ebp, ebp
jne 0x100c9480
cmp dword [esp + 0x3c], ebp
je 0x100c9480
test edi, edi
jne 0x100c9480
lea ecx, [ebp + 1]
jmp 0x100c9482
xor ecx, ecx
mov eax, dword [esi + 0x18]
lea edx, [esp + 0x60]
mov edi, dword [esp + 0x40]
push edx
lea edx, [esp + 0xa0]
mov eax, dword [eax + 0xc]
push edx
push dword [esp + 0x3c]
mov edx, dword [edi + 4]
push dword [esp + 0x44]
push dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 0x1c]
call eax
mov ebp, eax
test ebp, ebp
je 0x100c94c5
mov dword [esp + 0x68], 1
mov dword [esi + 0x50], 1
jmp 0x100c94d4
mov ecx, dword [esp + 0x9c]
test ecx, ecx
jne 0x100c9536
test ebx, ebx
jne 0x100c9536
lea edi, [esi + 0xb0]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x88], 0
je 0x100c9506
mov eax, dword [esp + 0x58]
cmp eax, dword [esi + 0x94]
ja 0x100c9524
mov eax, dword [esp + 0x4c]
jb 0x100c950a
cmp eax, dword [esi + 0x90]
jae 0x100c9524
jmp 0x100c950a
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x94], eax
mov dword [esi + 0x88], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x9c]
mov edi, dword [esp + 0x40]
cmp dword [esp + 0x60], 0
je 0x100c959e
cmp dword [esp + 0x24], 0
je 0x100c9567
test ebp, ebp
jne 0x100c9567
cmp dword [esi + 0x50], ebp
jne 0x100c9567
cmp dword [esp + 0x2c], ebp
jne 0x100c9567
cmp dword [esp + 0x14], ebp
jne 0x100c9567
cmp dword [esi + 0x84], ebp
jne 0x100c9579
cmp dword [esp + 0x68], ebp
je 0x100c959e
cmp dword [esi + 0x84], 0
jne 0x100c9579
mov eax, dword [edi + 4]
mov dword [esi + 0x80], eax
mov ebp, dword [esp + 0x20]
mov eax, ebp
mov edx, dword [esp + 0x28]
or eax, edx
jne 0x100c958b
test ebx, ebx
jne 0x100c95ab
mov eax, dword [esp + 0x30]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebp
mov dword [edi + 0x14], edx
inc dword [esi + 0x84]
test ebx, ebx
jne 0x100c95ab
mov ecx, dword [esp + 0x70]
add ecx, 0x20
jmp 0x100c95d3
test ecx, ecx
je 0x100c95c0
lea ecx, [esi + 0xe8]
call fcn.100cdac0
test eax, eax
jne 0x100c95f6
jmp 0x100c95cd
cmp dword [edi + 4], 0
je 0x100c95f4
mov dword [esi + 0x24], 1
lea ecx, [esi + 0xe4]
call fcn.100cdac0
test eax, eax
jne 0x100c95f6
mov ecx, dword [edi + 0x1c]
call fcn.100cdb30
test eax, eax
je 0x100c89d0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret