Function at 0x10032830
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100899b4
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x101ae960]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 0x20]
xor ebx, ebx
mov esi, dword [ebp + 0x14]
push ebx
push ebx
push ebx
push 0xff02
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x39], bl
call fcn.100712a0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x48], eax
test edx, edx
je 0x100328a3
cmp dword [edx + 0xc], ebx
je 0x100328a3
mov ecx, 1
mov eax, ecx
lock xadd dword [edi], eax
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
inc ecx
mov eax, dword [edx + 0xc]
mov dword [edi + 4], eax
mov edx, dword [ebp + 0x10]
test edx, edx
jne 0x100328b5
mov eax, dword [edi + 4]
add eax, 0x10
mov dword [ebp - 0x4c], eax
jmp 0x100328cf
cmp dword [ebp + 0xc], 1
jne 0x100328ca
mov ecx, dword [edi + 4]
mov eax, dword [edx]
cmp eax, dword [ecx + 0x10]
jne 0x100328ca
mov dword [ebp - 0x4c], edx
jmp 0x100328cf
mov ebx, 0xffffffdf
cmp dword [ebp - 0x44], 0
je 0x10032c22
cmp dword [ebp + 0x1c], 0
je 0x10032c22
mov eax, dword [edi + 0x48]
cmp eax, 0xfffffffd
je 0x10032c1b
cmp eax, 0xffffffff
je 0x1003296c
test eax, eax
jne 0x10032a87
mov ecx, dword [edi + 0x2ec]
call fcn.10036390
test eax, eax
jne 0x1003291a
lea ebx, [eax - 0x3b]
mov dword [edi + 0x48], 0xfffffffe
jmp 0x10032c27
test esi, esi
jne 0x10032923
cmp dword [edi + 0x18], esi
jmp 0x10032957
mov eax, dword [edi + 0x18]
test eax, eax
je 0x1003295d
mov ecx, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10032950
test dl, dl
je 0x1003294c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10032950
add eax, 2
add ecx, 2
test dl, dl
jne 0x10032930
xor eax, eax
jmp 0x10032955
sbb eax, eax
or eax, 1
test eax, eax
je 0x10032a87
mov ecx, dword [edi + 0x2e8]
test ecx, ecx
je 0x1003296c
call fcn.10035a30
mov dword [edi + 0x48], 0xfffffffd
test ebx, ebx
jne 0x10032c27
test esi, esi
je 0x1003299f
push str.create_library
push esi
call fcn.10073230
add esp, 8
test eax, eax
je 0x1003299f
push esi
mov ecx, edi
mov byte [ebp - 0x39], 1
call fcn.100333d0
jmp 0x100329a7
push esi
mov ecx, edi
call fcn.100331e0
mov ebx, eax
test ebx, ebx
jne 0x10032c27
push dword [ebp + 0x18]
mov ecx, edi
push esi
call fcn.10033e10
mov ecx, edi
call fcn.10034af0
push dword [ebp + 0x1c]
mov ecx, edi
push dword [ebp - 0x44]
call fcn.10034fb0
cmp dword [ebp - 0x48], ebx
je 0x10032c14
lea ecx, [ebp - 0x38]
call fcn.10035780
mov dword [ebp - 4], ebx
xor esi, esi
mov dword [ebp - 0x40], esi
cmp dword [ebp + 0x1c], esi
jbe 0x10032a78
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10032a63
mov esi, dword [eax + 8]
test esi, esi
je 0x10032a60
cmp dword [esi + 0xcc], 1
jne 0x10032a60
cmp dword [esi + 0x48], 0
jne 0x10032a73
push 0x1008f3ba
lea ecx, [ebp - 0x30]
call fcn.10024c40
mov ecx, esi
call fcn.10035f50
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0
mov ecx, dword [esi + 0x60]
test ecx, ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x14], eax
mov eax, 0xffffffd4
cmove ebx, eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x48]
call fcn.10071180
mov esi, dword [ebp - 0x40]
test eax, eax
je 0x10032a68
mov ebx, 0xfffffffa
jmp 0x10032a68
mov esi, dword [ebp - 0x40]
mov ebx, 0xffffffd4
inc esi
mov dword [ebp - 0x40], esi
cmp esi, dword [ebp + 0x1c]
jb 0x100329f2
jmp 0x10032a78
mov ebx, 0xffffffc5
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.10035900
test ebx, ebx
jne 0x10032c27
mov eax, dword [ebp - 0x4c]
and eax, 0xffff000a
or eax, 0xa
movzx esi, ax
cmp byte [ebp - 0x39], bl
je 0x10032abe
mov edx, dword [edi + 0x18]
or esi, 0x90000
mov dword [edi + 0x4c], 2
mov dword [ebp - 0x44], 2
mov dword [ebp - 0x40], edx
jmp 0x10032ad8
mov eax, dword [edi + 0x20]
or esi, 0x80000
mov dword [edi + 0x4c], 4
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x40], eax
mov ecx, dword [edi + 0x80]
lea eax, [edi + 0x80]
test ecx, ecx
je 0x10032b07
push ecx
call fcn.10073079
lea eax, [edi + 0x80]
add esp, 4
mov dword [eax], 0
mov dword [edi + 0x84], 0
lea ecx, [edi + 0x84]
push ecx
push eax
push dword [ebp - 0x48]
call fcn.100714a0
test eax, eax
lea eax, [edi + 0x84]
jne 0x10032b45
mov ecx, dword [eax]
test ecx, ecx
je 0x10032b45
push 0x101b7e92
push ecx
call fcn.10073070
lea ecx, [edi + 0x80]
add esp, 8
mov dword [ecx], eax
lea eax, [edi + 0x84]
jmp 0x10032b4b
lea ecx, [edi + 0x80]
cmp dword [eax], 0
je 0x10032c14
cmp dword [ecx], 0
je 0x10032c14
push eax
push ecx
push dword [ebp - 0x48]
call fcn.100714a0
test eax, eax
jne 0x10032c14
mov eax, dword [edi + 0x80]
lea edx, [edi + 0x94]
mov ecx, dword [ebp + 0x24]
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0x84]
mov dword [edi + 0xa4], eax
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x9c], eax
mov eax, dword [edi + 8]
mov dword [edi + 0xa8], eax
mov eax, dword [ebp - 0x4c]
mov dword [edi + 0xac], eax
mov eax, dword [ebp + 0x28]
mov dword [edi + 0xbc], eax
mov eax, dword [ebp - 0x40]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0x28]
mov dword [edi + 0xcc], 1
mov dword [edi + 0x98], esi
mov dword [edi + 0xb8], ecx
mov dword [edi + 0xb4], eax
test ecx, ecx
je 0x10032c06
push 0
push 0
push edx
push fcn.10039910
push 0x1000
push 0
call fcn.10073493
add esp, 0x18
mov dword [edi + 0x90], eax
jmp 0x10032c2e
push edx
call fcn.10039910
mov ebx, eax
test ebx, ebx
je 0x10032c2e
jmp 0x10032c27
mov ebx, 0xfffffffa
jmp 0x10032c27
mov ebx, 0xffffffc5
jmp 0x10032c27
mov ebx, 0xffffffd4
mov dword [edi + 0x48], 0xfffffffe
lea eax, [ebp - 0x48]
push eax
call fcn.10071350
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10072374
mov esp, ebp
pop ebp
ret 0x24