Function at 0x40aba0
Capabilities:
Create thread

Disassembly:
sub esp, 0x50
mov eax, dword [0x5ed284]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebp
xor ebp, ebp
push edi
mov edi, dword [esp + 0x5c]
cmp edi, ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0xc], ebp
mov byte [esp + 0x18], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebp
je 0x40b064
mov ax, word [esp + 0x60]
cmp ax, bp
jbe 0x40b064
cmp ax, 0xffff
jne 0x40ac06
pop edi
mov ax, 3
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
push edi
call fcn.00405e40
mov ecx, eax
add ecx, 0x18
cmp word [ecx], 0x7242
mov dword [esp + 8], ecx
jne 0x40b04d
test byte [ecx + 0x12], 4
jne 0x40ac42
mov eax, 2
pop edi
mov word [ecx + 6], ax
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
push esi
push edi
call fcn.00406660
mov ecx, dword [0xa1c128]
push ecx
push eax
call fcn.0040b870
mov esi, eax
add esp, 0xc
cmp esi, ebp
jne 0x40ac77
pop esi
pop edi
mov ax, 2
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
push ebx
push edi
lea ebx, [esi + 0x1fc]
call fcn.00405e40
mov dword [eax + 8], ebx
cmp byte [esi + 0x6a9], 2
lea ebx, [esi + 0xab4]
lea eax, [esi + 0x5fc]
ja 0x40acb7
mov edx, dword [esi + 0xab0]
movzx ecx, byte [esi + 0x6a8]
push edx
push ebx
push ecx
lea edx, [esi + 0x626]
push edx
push ebp
push ebp
jmp 0x40acdc
mov ecx, dword [esi + 0xab0]
movzx edx, byte [esi + 0x6a8]
push ecx
push ebx
push edx
lea ecx, [esi + 0x626]
push ecx
lea edx, [esi + 0xcda]
push edx
lea ecx, [esi + 0xcb0]
push ecx
push eax
push ebp
push edi
call fcn.00408ae0
movzx edx, word [esp + 0x68]
push edx
push edi
call fcn.00409820
movzx eax, ax
cmp ax, bp
jne 0x40adfb
movzx ecx, byte [esi + 0x6a9]
lea eax, [esp + 0x14]
push eax
push ecx
push edi
call fcn.0040a910
add esp, 0xc
test ax, ax
je 0x40ad40
push edi
call fcn.004099a0
movzx eax, ax
cmp ax, bp
jne 0x40ad86
movzx eax, byte [esi + 0x6a9]
lea edx, [esp + 0x14]
push edx
push eax
push edi
call fcn.0040a910
add esp, 0xc
test ax, ax
jne 0x40ad17
cmp word [esi + 0x9a], bp
mov cx, word [esp + 0x14]
mov word [esi + 0x1c8], cx
je 0x40ad9f
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40ad9f
mov edx, dword [esp + 0x10]
pop ebx
pop esi
mov eax, 0x46
pop edi
mov word [edx + 6], ax
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
pop ebx
pop esi
pop edi
mov ax, 3
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
mov ebp, 1
cmp dword [esi + 0x1e4], ebp
jne 0x40adb2
push edi
call fcn.00408e60
cmp word [esp + 0x6c], bp
jne 0x40afa2
cmp word [0x8030d8], 0
jne 0x40ae36
lea eax, [esp + 0x34]
push eax
call fcn.00402080
add esp, 4
test eax, eax
jne 0x40adee
push eax
push eax
lea edx, [esp + 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x8030e0], eax
jne 0x40ae10
mov eax, 0x4a
mov ecx, dword [esp + 0x10]
mov word [ecx + 6], ax
pop ebx
pop esi
pop edi
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
lea edx, [esp + 0x30]
push edx
push 0
push 0
push 0x405240
push 0
push 0
call sub.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex
add esp, 0x18
mov dword [0x8030e4], eax
mov word [0x8030d8], bp
cmp word [esi + 0x9a], 0
je 0x40ae4f
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x40ae66
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.00406780
add esp, 0xc
test eax, eax
jne 0x40ae6d
mov eax, 0x46
jmp 0x40adf3
mov bp, word [esp + 0x18]
neg bp
lea edx, [esp + 0x40]
push edx
push edi
sbb ebp, ebp
and ebp, dword [0x8030ac]
call fcn.004078f0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x34]
push edx
push edi
call fcn.00419360
test ax, ax
jne 0x40aeaf
cmp word [esp + 0x1c], 2
jne 0x40aeaf
mov byte [esp + 0x20], 1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x14]
push 0
push 0
push 0
push ebp
push 1
push 1
push ecx
push edx
push eax
call fcn.0040a9f0
add esp, 0x28
test ax, ax
je 0x40af05
push 0x404
push edi
call fcn.00407a40
push edi
call fcn.00407b10
pop ebx
pop esi
pop edi
mov ax, 0x46
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
mov al, byte [esp + 0x4b]
cmp al, 5
je 0x40af15
cmp al, 7
je 0x40af15
cmp al, 8
jne 0x40af8a
movzx ecx, byte [esp + 0x53]
movzx edx, byte [esp + 0x52]
shl ecx, 8
add ecx, edx
test ecx, 0x4000
je 0x40af8a
cmp dword [esi + 0x1e8], 0
je 0x40af8a
cmp byte [esi + 0x6a9], 2
ja 0x40af56
mov eax, dword [esi + 0xab0]
movzx ecx, byte [esi + 0x6a8]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x40af76
mov edx, dword [esi + 0xab0]
movzx eax, byte [esi + 0x6a8]
push edx
push ebx
push eax
push 0
lea ecx, [esi + 0xcda]
push ecx
lea edx, [esi + 0xcb0]
push edx
lea eax, [esi + 0x5fc]
push eax
add esi, 0x1ec
push esi
push edi
call fcn.00408ae0
pop ebx
pop esi
pop edi
xor ax, ax
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
lea eax, [esp + 0x40]
push eax
push edi
call fcn.004078f0
movzx ebp, ax
mov al, byte [esp + 0x4b]
cmp al, 5
je 0x40afc0
cmp al, 7
je 0x40afc0
cmp al, 8
jne 0x40b035
movzx ecx, byte [esp + 0x53]
movzx edx, byte [esp + 0x52]
shl ecx, 8
add ecx, edx
test ecx, 0x4000
je 0x40b035
cmp dword [esi + 0x1e8], 0
je 0x40b035
cmp byte [esi + 0x6a9], 2
ja 0x40b001
mov eax, dword [esi + 0xab0]
movzx ecx, byte [esi + 0x6a8]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x40b021
mov edx, dword [esi + 0xab0]
movzx eax, byte [esi + 0x6a8]
push edx
push ebx
push eax
push 0
lea ecx, [esi + 0xcda]
push ecx
lea edx, [esi + 0xcb0]
push edx
lea eax, [esi + 0x5fc]
push eax
add esi, 0x1ec
push esi
push edi
call fcn.00408ae0
pop ebx
pop esi
pop edi
mov ax, bp
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
pop edi
mov ax, 2
pop ebp
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0052bfb9
add esp, 0x50
ret 0xc
mov ecx, dword [esp + 0x54]
pop edi
pop ebp
xor ecx, esp
mov ax, 0x10
call fcn.0052bfb9
add esp, 0x50
ret 0xc