Function at 0x4093f0
Capabilities:
Create thread

Disassembly:
push ecx
push esi
mov esi, ecx
mov ecx, dword [0x44de84]
call fcn.00401290
test eax, eax
je 0x409ac6
cmp byte [esi + 0x22], 0
je 0x409626
movzx eax, word [esi + 0x1e]
cmp ax, 5
jge 0x409535
cmp ax, 1
jne 0x409433
mov eax, 2
mov word [esi + 0x1e], ax
jmp 0x4094df
cmp ax, 2
jne 0x409444
xor ecx, ecx
mov word [esi + 0x1e], cx
jmp 0x4094df
test ax, ax
jne 0x4094bf
mov eax, dword [0x44de84]
mov edx, dword [eax + 0xcdc]
mov eax, dword [eax + 0xce0]
mov ecx, dword [esi + 8]
push edx
push eax
call fcn.004053a0
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0x10]
push edx
call fcn.004053a0
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0x28]
push edx
call fcn.004053a0
lea eax, [esp + 4]
push eax
push 0
push esi
push 0x409370
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 3
mov dword [esi + 0x24], eax
mov word [esi + 0x1e], cx
jmp 0x4094df
cmp ax, 3
jne 0x4094df
mov ecx, esi
call fcn.00408cb0
push 2
call fcn.00424250
mov edx, 5
add esp, 4
mov word [esi + 0x1e], dx
mov ecx, dword [0x44de84]
call fcn.004012f0
cmp word [esi + 0x1e], 2
je 0x409ac6
mov ecx, dword [0x44de84]
mov eax, dword [ecx + 0xc58]
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push 0
push 0x44c03c
push ecx
push 0
push 0
push eax
call edx
mov eax, dword [0x44de84]
mov eax, dword [eax + 0xc54]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0
push 0
push eax
call edx
pop esi
pop ecx
ret
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd50]
push edx
call fcn.0040b270
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd48]
push edx
call fcn.0040bc20
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd60]
push edx
call fcn.004248e0
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd54]
push edx
call fcn.004215a0
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd40]
push edx
call fcn.0041f490
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd5c]
push edx
call fcn.00419270
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44dd44]
push edx
call fcn.0041c740
mov eax, dword [0x44de84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0xc]
push edx
call fcn.004053a0
mov byte [esi + 0x22], 0
mov ecx, dword [0x44dd50]
call fcn.0040bb40
mov ecx, dword [0x44dd5c]
call fcn.00402680
mov ecx, dword [0x44dd50]
call fcn.00402680
mov ecx, dword [0x44dd5c]
call fcn.00402680
mov ecx, dword [0x44dd50]
call fcn.00402680
mov ecx, dword [0x44dd5c]
cmp byte [ecx + 0x794], 0
jne 0x409671
call fcn.0041b0e0
mov ecx, dword [0x44dd44]
call fcn.0041e400
mov ecx, dword [0x44dd54]
call fcn.00422990
mov ecx, dword [0x44dd60]
call fcn.00402680
mov ecx, dword [0x44dd48]
call fcn.0040cdf0
mov ecx, dword [0x44dd48]
call fcn.0040d6e0
mov ecx, dword [0x44dd54]
call fcn.00423770
mov ecx, dword [0x44dd60]
call fcn.00424a60
mov ecx, dword [0x44dd60]
call fcn.00424d80
mov ecx, dword [0x44dd44]
call fcn.0041df50
mov ecx, dword [0x44dd5c]
call fcn.0041b6c0
mov ecx, dword [0x44dd54]
call fcn.00422e40
mov ecx, dword [0x44dd5c]
cmp byte [ecx + 0x794], 0
je 0x409704
call fcn.0041b0e0
mov ecx, dword [0x44dd5c]
push ebx
call fcn.0041b690
cmp word [esi + 0x1e], 5
mov ebx, 1
jne 0x40974a
push 0
mov eax, 6
push 0
mov word [esi + 0x1e], ax
mov ecx, dword [0x44f69c]
push 0x404
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [esi + 8]
push 0
push 0
push 0
push ebx
push 0
push 0
push 0
call fcn.00408730
call fcn.00424350
cmp eax, 2
jne 0x409759
push 0
push ebx
jmp 0x409774
call fcn.00424350
cmp eax, ebx
jne 0x40977c
add word [esi + 0x20], bx
movzx eax, word [esi + 0x20]
cmp ax, 0x25
jl 0x40977c
push 0
push 0
call fcn.00424330
add esp, 8
mov eax, dword [0x4512bc]
test eax, eax
jle 0x4097a7
push 5
push eax
call fcn.00424280
add esp, 8
test eax, eax
je 0x4097a0
mov dword [0x4512bc], 0
jmp 0x4097a7
mov ecx, esi
call fcn.00409200
push edi
call fcn.00424310
test al, al
jne 0x409932
call fcn.00424370
cmp eax, 0x64
jge 0x4097c8
call fcn.00424360
test eax, eax
jle 0x4097d1
push ebx
call fcn.00424320
add esp, 4
mov eax, dword [esi + 0x18]
or edi, 0xffffffff
cmp eax, edi
je 0x4097fe
cmp eax, 0xa
jge 0x409803
add word [esi + 0x1c], di
movzx ecx, word [esi + 0x1c]
test cx, cx
jg 0x409831
add eax, 0xa
mov edx, 0x25
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], dx
jmp 0x409827
cmp eax, 0xa
jl 0x409808
cmp eax, 0x14
jl 0x409831
cmp eax, 0x14
jl 0x409831
add word [esi + 0x1c], bx
movzx eax, word [esi + 0x1c]
cmp ax, 0x25
jl 0x409831
mov eax, 0x25
mov dword [esi + 0x18], edi
mov word [esi + 0x1c], ax
mov ecx, dword [esi + 0xc]
push 0
call fcn.004024e0
mov ecx, dword [esi + 8]
push 0
push 0
push 0
push ebx
push ebx
push 0xdc
push 0xaf
call fcn.00408730
mov ecx, dword [esi + 0xc]
cmp word [ecx + 0x40a], 0
jne 0x4098a5
push 0
push 0
push 0
push ebx
push 0
push 0x3e8
push 0
call fcn.004055b0
mov ecx, 0x300
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0xc]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.00408730
mov ecx, dword [esi + 0xc]
push 4
push 0x7d0
call fcn.00402510
test eax, eax
je 0x4098c1
mov edx, dword [esi + 0xc]
mov eax, ebx
mov word [edx + 0x40a], ax
jmp 0x4098c1
push 4
push 0x1f4
call fcn.00402510
test eax, eax
je 0x4098c1
mov ecx, dword [esi + 0xc]
xor edx, edx
mov word [ecx + 0x40a], dx
cmp dword [esi + 0x18], 0xa
jge 0x4098e5
cmp word [esi + 0x1c], 0x25
jne 0x4098e5
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0
push ebx
push ebx
push 0xffffff24
push 0
call fcn.00408730
mov ecx, dword [esi + 0xc]
push 2
push 0x2710
call fcn.00402510
test eax, eax
je case.0x40995a.2
mov eax, dword [esi + 0x18]
cmp eax, edi
jne 0x409921
call fcn.0042ad50
cdq
mov ecx, 3
idiv ecx
mov dword [esi + 0x18], edx
mov edx, 0x25
mov word [esi + 0x1c], dx
jmp case.0x40995a.2
add eax, 0xa
mov dword [esi + 0x18], eax
xor eax, eax
mov word [esi + 0x1c], ax
jmp case.0x40995a.2
mov eax, dword [0x44dd48]
cmp byte [eax + 0x600], 0
jne case.0x40995a.2
mov eax, dword [eax + 0x9ec]
cmp eax, 0x1f
ja case.0x40995a.2
movzx ecx, byte [eax + 0x409adc]
jmp dword [ecx*4 + 0x409acc]
mov edx, dword [0x44dd44]
cmp dword [edx + 0x328], 0
jne 0x4099af
push 0
push 0
push 0
push ebx
push ebx
push 0x3b1
push ebx
jmp 0x409990
push 0
push 0
push 0
push ebx
push 2
push 0x3a2
push 2
mov ecx, dword [esi + 0xc]
call fcn.004055b0
mov ecx, 0x300
sub ecx, eax
mov eax, ecx
mov ecx, dword [esi + 0xc]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.00408730
mov ecx, dword [esi + 0xc]
push ebx
push 0x12c
call fcn.00402510
test eax, eax
je case.0x40995a.2
mov eax, dword [esi + 0xc]
add word [eax + 0x40c], bx
mov eax, dword [esi + 0xc]
cmp word [eax + 0x40c], 3
jle case.0x40995a.2
mov edx, ebx
mov word [eax + 0x40c], dx
mov ecx, dword [esi + 0x10]
cmp word [ecx + 0x40c], 0
jne 0x409a21
push 0
push 0
push 0
push ebx
push 0
push 0x2bc
push 0
call fcn.00408730
mov ecx, dword [esi + 0x10]
push ebx
push 0xfa0
call fcn.00402510
test eax, eax
je 0x409a21
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov word [eax + 0x40c], cx
cmp byte [0x450ed5], 0
je 0x409a41
mov ecx, dword [esi + 0x10]
push 0
push 0
push 0
push ebx
push ebx
push 0x186
push 0
call fcn.00408730
cmp dword [0x4512a4], 0
jle 0x409a5f
mov ecx, dword [esi + 0x10]
push 0xa
call fcn.00407440
mov ecx, dword [0x44dd40]
call fcn.00420a80
mov ecx, dword [0x44de84]
call fcn.004012f0
mov ecx, dword [0x44de84]
mov eax, dword [ecx + 0xc58]
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push 0
push 0x44c03c
push ecx
push 0
push 0
push eax
call edx
mov edi, eax
mov eax, dword [0x44de84]
mov eax, dword [eax + 0xc54]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0
push 0
push eax
call edx
cmp edi, 0x887601c2
pop edi
jne 0x409ac5
mov byte [esi + 0x22], bl
mov ecx, dword [0x44de84]
pop ebx
pop esi
add esp, 4
jmp fcn.00401250
pop ebx
pop esi
pop ecx
ret