Function at 0x100320f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, ecx
push esi
mov esi, dword [ebx + 0x8c]
movzx eax, word [ebx + 0x88]
shl esi, 0x10
or esi, eax
cmp dword [ebx + 0xc4], 0
mov dword [ebp - 4], ebx
jne 0x10032138
cmp dword [ebx + 0xc0], 0
je 0x10032138
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x1003212e
push dword [ebp + 0x20]
push dword [ebp + 8]
call ecx
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov edx, dword [ebp + 0x10]
push edi
test edx, edx
jne 0x1003214b
mov edx, dword [ebx + 4]
add edx, 0x10
mov dword [ebp + 0x10], edx
jmp 0x10032163
cmp dword [ebp + 0xc], 1
jne 0x10032328
mov ecx, dword [ebx + 4]
mov eax, dword [edx]
cmp eax, dword [ecx + 0x10]
jne 0x10032328
mov eax, dword [ebx + 0x48]
add eax, 3
cmp eax, 3
ja case.default.0x10032172
jmp dword [eax*4 + 0x10032340]
mov edi, 0xffffffc5
mov eax, edi
pop edi
pop esi
mov dword [ebx + 0x48], 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov edi, dword [ebx + 0x2ec]
lea ebx, [edi + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [edi + 4]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebp - 4]
test edi, edi
je 0x100321cf
mov edi, 0xffffffc5
mov eax, edi
pop edi
mov dword [ebx + 0x48], 0xfffffffe
pop esi
mov dword [ebx + 0x48], 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x100321e6
cmp dword [ebx + 0x18], ecx
jne 0x10032222
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10032222
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10032210
test dl, dl
je 0x1003220c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10032210
add eax, 2
add ecx, 2
test dl, dl
jne 0x100321f0
xor eax, eax
jmp 0x10032215
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10032222
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebx + 0x2e8]
test ecx, ecx
je case.0x10032172.1
call fcn.10035a30
push dword [ebp + 0x14]
mov ecx, ebx
mov dword [ebx + 0x4c], 4
mov dword [ebx + 0x48], 0xfffffffd
call fcn.10032b10
mov edi, eax
test edi, edi
jne 0x1003232d
push dword [ebp + 0x18]
mov ecx, ebx
push dword [ebp + 0x14]
call fcn.10033cc0
mov eax, dword [ebx + 0xc4]
neg eax
mov ecx, dword [ebp + 0x1c]
sbb eax, eax
and eax, 4
mov dword [ebx + 0x94], eax
mov eax, dword [ebx + 0x10]
lea edx, [ebx + 0x94]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0xa4], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x9c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0xac], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0xb0], eax
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x98], esi
mov dword [ebx + 0xa8], 1
mov dword [ebx + 0xb8], ecx
mov dword [ebx + 0xb4], eax
test ecx, ecx
je 0x100322fc
push edi
push edi
push edx
push fcn.10039560
push 0x1000
push edi
call fcn.10072cf3
add esp, 0x18
mov dword [ebx + 0x90], eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
push edx
call fcn.10039560
mov edi, eax
test edi, edi
jne 0x1003232d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov edi, 0xffffffd4
mov eax, edi
pop edi
pop esi
mov dword [ebx + 0x48], 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov edi, 0xffffffdf
mov eax, edi
pop edi
pop esi
mov dword [ebx + 0x48], 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x1c