Function at 0x10010790
Capabilities:
Create thread

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1c], bl
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
je 0x10010c10
mov ebp, dword [esp + 0x5c]
cmp bp, bx
jbe 0x10010c10
cmp bp, 0xffff
jne 0x100107e3
pop edi
pop esi
pop ebp
mov ax, 3
pop ebx
add esp, 0x44
ret 0xc
push edi
call fcn.1000a0c0
add eax, 0x18
mov dword [esp + 0x58], eax
cmp word [eax], 0x7242
jne 0x1001082d
test byte [eax + 0x12], 4
jne 0x10010811
pop edi
pop esi
mov word [eax + 6], 2
pop ebp
mov ax, 2
pop ebx
add esp, 0x44
ret 0xc
push edi
call fcn.1000aa20
mov ecx, dword [0x10071a48]
push ecx
push eax
call fcn.10012130
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x1001083b
pop edi
pop esi
pop ebp
mov ax, 2
pop ebx
add esp, 0x44
ret 0xc
push edi
lea ebx, [esi + 0x1f0]
call fcn.1000a0c0
mov dword [eax + 8], ebx
mov al, byte [esi + 0x69d]
cmp al, 2
lea ebx, [esi + 0xaa8]
lea eax, [esi + 0x5f0]
ja 0x1001087c
mov edx, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push edx
push ebx
lea edx, [esi + 0x61a]
push ecx
push edx
push 0
push 0
jmp 0x100108a0
mov ecx, dword [esi + 0xaa4]
mov dl, byte [esi + 0x69c]
push ecx
push ebx
lea ecx, [esi + 0x61a]
push edx
push ecx
lea edx, [esi + 0xcce]
lea ecx, [esi + 0xca4]
push edx
push ecx
push eax
push 0
push edi
call fcn.1000dbe0
and ebp, 0xffff
push ebp
push edi
call fcn.1000bf10
test ax, ax
jne 0x10010c14
mov al, byte [esi + 0x69d]
lea edx, [esp + 0x10]
push edx
push eax
push edi
call fcn.100106f0
add esp, 0xc
test ax, ax
je 0x10010902
push edi
call fcn.1000c0c0
test ax, ax
jne 0x100107d5
mov dl, byte [esi + 0x69d]
lea ecx, [esp + 0x10]
push ecx
push edx
push edi
call fcn.100106f0
add esp, 0xc
test ax, ax
jne 0x100108d9
mov ax, word [esp + 0x10]
cmp word [esi + 0x8e], 0
mov word [esi + 0x1bc], ax
je 0x1001093e
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x1001093e
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
mov eax, dword [esi + 0x1d8]
mov ebp, 1
cmp eax, ebp
jne 0x10010953
push edi
call fcn.1000e360
cmp word [esp + 0x60], bp
jne 0x10010b6b
cmp word [0x100648ea], 0
jne 0x100109e6
lea edx, [esp + 0x2c]
push edx
call fcn.10005fe0
add esp, 4
test eax, eax
je 0x10010990
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x4a
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
push 0
lea edx, [esp + 0x30]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x100648f0], eax
jne 0x100109bf
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x4a
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
lea edx, [esp + 0x5c]
push edx
push 0
push 0
push 0x10008410
push 0
push 0
call dword [sym.imp.MSVCR100.dll__beginthreadex]
add esp, 0x18
mov dword [0x100648f4], eax
mov word [0x100648ea], bp
cmp word [esi + 0x8e], 0
je 0x10010a16
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x10010a16
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
lea edx, [esp + 0x20]
lea eax, [esp + 0x14]
push edx
push eax
push edi
call fcn.1000ab20
add esp, 0xc
test eax, eax
jne 0x10010a44
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
mov bp, word [esp + 0x14]
mov ecx, dword [0x100648c4]
neg bp
lea edx, [esp + 0x38]
sbb ebp, ebp
push edx
push edi
and ebp, ecx
call fcn.1000bb70
lea eax, [esp + 0x24]
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x2c]
push ecx
push edx
push edi
call fcn.1001da80
test ax, ax
jne 0x10010a88
cmp word [esp + 0x18], 2
jne 0x10010a88
mov byte [esp + 0x1c], 1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x5c]
push 0
push 0
push 0
push ebp
push 1
push 1
push ecx
push edx
push eax
call fcn.10011020
add esp, 0x28
test ax, ax
je 0x10010ad3
push 0x404
push edi
call fcn.1000bd60
push edi
call fcn.1000be40
pop edi
pop esi
pop ebp
mov ax, 0x46
pop ebx
add esp, 0x44
ret 0xc
mov al, byte [esp + 0x43]
cmp al, 5
je 0x10010ae3
cmp al, 7
je 0x10010ae3
cmp al, 8
jne 0x10010b5e
mov ecx, dword [esp + 0x4b]
mov edx, dword [esp + 0x4a]
and ecx, 0xff
and edx, 0xff
shl ecx, 8
add ecx, edx
test ch, 0x40
je 0x10010b5e
mov eax, dword [esi + 0x1dc]
test eax, eax
je 0x10010b5e
cmp byte [esi + 0x69d], 2
ja 0x10010b2b
mov eax, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x10010b4a
mov edx, dword [esi + 0xaa4]
mov al, byte [esi + 0x69c]
push edx
push ebx
push eax
lea ecx, [esi + 0xcce]
push 0
lea edx, [esi + 0xca4]
push ecx
push edx
lea eax, [esi + 0x5f0]
add esi, 0x1e0
push eax
push esi
push edi
call fcn.1000dbe0
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
add esp, 0x44
ret 0xc
lea eax, [esp + 0x38]
push eax
push edi
call fcn.1000bb70
mov ebp, eax
mov al, byte [esp + 0x43]
cmp al, 5
je 0x10010b88
cmp al, 7
je 0x10010b88
cmp al, 8
jne 0x10010c03
mov ecx, dword [esp + 0x4b]
mov edx, dword [esp + 0x4a]
and ecx, 0xff
and edx, 0xff
shl ecx, 8
add ecx, edx
test ch, 0x40
je 0x10010c03
mov eax, dword [esi + 0x1dc]
test eax, eax
je 0x10010c03
cmp byte [esi + 0x69d], 2
ja 0x10010bd0
mov eax, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x10010bef
mov edx, dword [esi + 0xaa4]
mov al, byte [esi + 0x69c]
push edx
push ebx
push eax
lea ecx, [esi + 0xcce]
push 0
lea edx, [esi + 0xca4]
push ecx
push edx
lea eax, [esi + 0x5f0]
add esi, 0x1e0
push eax
push esi
push edi
call fcn.1000dbe0
pop edi
mov ax, bp
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0xc
mov ax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0xc