Function at 0x409620
Capabilities:
Create thread

Disassembly:
push ecx
push esi
mov esi, ecx
mov ecx, dword [0x44ee84]
call fcn.00401290
test eax, eax
je 0x409cf6
cmp byte [esi + 0x22], 0
je 0x409856
movzx eax, word [esi + 0x1e]
cmp ax, 5
jge 0x409765
cmp ax, 1
jne 0x409663
mov eax, 2
mov word [esi + 0x1e], ax
jmp 0x40970f
cmp ax, 2
jne 0x409674
xor ecx, ecx
mov word [esi + 0x1e], cx
jmp 0x40970f
test ax, ax
jne 0x4096ef
mov eax, dword [0x44ee84]
mov edx, dword [eax + 0xcdc]
mov eax, dword [eax + 0xce0]
mov ecx, dword [esi + 8]
push edx
push eax
call fcn.004053c0
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0x10]
push edx
call fcn.004053c0
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0x28]
push edx
call fcn.004053c0
lea eax, [esp + 4]
push eax
push 0
push esi
push 0x4095a0
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 0x40970f
cmp ax, 3
jne 0x40970f
mov ecx, esi
call fcn.00408cd0
push 2
call fcn.00425100
mov edx, 5
add esp, 4
mov word [esi + 0x1e], dx
mov ecx, dword [0x44ee84]
call fcn.004012f0
cmp word [esi + 0x1e], 2
je 0x409cf6
mov ecx, dword [0x44ee84]
mov eax, dword [ecx + 0xc58]
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push 0
push 0x44d03c
push ecx
push 0
push 0
push eax
call edx
mov eax, dword [0x44ee84]
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 [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed50]
push edx
call fcn.0040b4d0
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed48]
push edx
call fcn.0040be80
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed60]
push edx
call fcn.00425790
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed54]
push edx
call fcn.00422290
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed40]
push edx
call fcn.00420160
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed5c]
push edx
call fcn.00419ee0
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [0x44ed44]
push edx
call fcn.0041d3c0
mov eax, dword [0x44ee84]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xce0]
push ecx
mov ecx, dword [esi + 0xc]
push edx
call fcn.004053c0
mov byte [esi + 0x22], 0
mov ecx, dword [0x44ed50]
call fcn.0040bda0
mov ecx, dword [0x44ed5c]
call fcn.0041bd60
mov ecx, dword [0x44ed50]
call fcn.0041bd60
mov ecx, dword [0x44ed5c]
call fcn.0041bd60
mov ecx, dword [0x44ed50]
call fcn.0041bd60
mov ecx, dword [0x44ed5c]
cmp byte [ecx + 0x794], 0
jne 0x4098a1
call fcn.0041bd70
mov ecx, dword [0x44ed44]
call fcn.0041f0d0
mov ecx, dword [0x44ed54]
call fcn.00423680
mov ecx, dword [0x44ed60]
call fcn.0041bd60
mov ecx, dword [0x44ed48]
call fcn.0040ced0
mov ecx, dword [0x44ed48]
call fcn.0040d7c0
mov ecx, dword [0x44ed54]
call fcn.00424620
mov ecx, dword [0x44ed60]
call fcn.00425940
mov ecx, dword [0x44ed60]
call fcn.00425c60
mov ecx, dword [0x44ed44]
call fcn.0041ec20
mov ecx, dword [0x44ed5c]
call fcn.0041c340
mov ecx, dword [0x44ed54]
call fcn.00423b50
mov ecx, dword [0x44ed5c]
cmp byte [ecx + 0x794], 0
je 0x409934
call fcn.0041bd70
mov ecx, dword [0x44ed5c]
push ebx
call fcn.0041c310
cmp word [esi + 0x1e], 5
mov ebx, 1
jne 0x40997a
push 0
mov eax, 6
push 0
mov word [esi + 0x1e], ax
mov ecx, dword [0x45069c]
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.00408750
call fcn.00425200
cmp eax, 2
jne 0x409989
push 0
push ebx
jmp 0x4099a4
call fcn.00425200
cmp eax, ebx
jne 0x4099ac
add word [esi + 0x20], bx
movzx eax, word [esi + 0x20]
cmp ax, 0x25
jl 0x4099ac
push 0
push 0
call fcn.004251e0
add esp, 8
mov eax, dword [0x4522bc]
test eax, eax
jle 0x4099d7
push 5
push eax
call fcn.00425130
add esp, 8
test eax, eax
je 0x4099d0
mov dword [0x4522bc], 0
jmp 0x4099d7
mov ecx, esi
call fcn.00409430
push edi
call fcn.004251c0
test al, al
jne 0x409b62
call fcn.00425220
cmp eax, 0x64
jge 0x4099f8
call fcn.00425210
test eax, eax
jle 0x409a01
push ebx
call fcn.004251d0
add esp, 4
mov eax, dword [esi + 0x18]
or edi, 0xffffffff
cmp eax, edi
je 0x409a2e
cmp eax, 0xa
jge 0x409a33
add word [esi + 0x1c], di
movzx ecx, word [esi + 0x1c]
test cx, cx
jg 0x409a61
add eax, 0xa
mov edx, 0x25
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], dx
jmp 0x409a57
cmp eax, 0xa
jl 0x409a38
cmp eax, 0x14
jl 0x409a61
cmp eax, 0x14
jl 0x409a61
add word [esi + 0x1c], bx
movzx eax, word [esi + 0x1c]
cmp ax, 0x25
jl 0x409a61
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.00408750
mov ecx, dword [esi + 0xc]
cmp word [ecx + 0x40a], 0
jne 0x409ad5
push 0
push 0
push 0
push ebx
push 0
push 0x3e8
push 0
call fcn.004055d0
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.00408750
mov ecx, dword [esi + 0xc]
push 4
push 0x7d0
call fcn.00402510
test eax, eax
je 0x409af1
mov edx, dword [esi + 0xc]
mov eax, ebx
mov word [edx + 0x40a], ax
jmp 0x409af1
push 4
push 0x1f4
call fcn.00402510
test eax, eax
je 0x409af1
mov ecx, dword [esi + 0xc]
xor edx, edx
mov word [ecx + 0x40a], dx
cmp dword [esi + 0x18], 0xa
jge 0x409b15
cmp word [esi + 0x1c], 0x25
jne 0x409b15
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0
push ebx
push ebx
push 0xffffff24
push 0
call fcn.00408750
mov ecx, dword [esi + 0xc]
push 2
push 0x2710
call fcn.00402510
test eax, eax
je case.0x409b8a.2
mov eax, dword [esi + 0x18]
cmp eax, edi
jne 0x409b51
call fcn.0042bcf0
cdq
mov ecx, 3
idiv ecx
mov dword [esi + 0x18], edx
mov edx, 0x25
mov word [esi + 0x1c], dx
jmp case.0x409b8a.2
add eax, 0xa
mov dword [esi + 0x18], eax
xor eax, eax
mov word [esi + 0x1c], ax
jmp case.0x409b8a.2
mov eax, dword [0x44ed48]
cmp byte [eax + 0x600], 0
jne case.0x409b8a.2
mov eax, dword [eax + 0x9ec]
cmp eax, 0x1f
ja case.0x409b8a.2
movzx ecx, byte [eax + 0x409d0c]
jmp dword [ecx*4 + 0x409cfc]
mov edx, dword [0x44ed44]
cmp dword [edx + 0x328], 0
jne 0x409bdf
push 0
push 0
push 0
push ebx
push ebx
push 0x3b1
push ebx
jmp 0x409bc0
push 0
push 0
push 0
push ebx
push 2
push 0x3a2
push 2
mov ecx, dword [esi + 0xc]
call fcn.004055d0
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.00408750
mov ecx, dword [esi + 0xc]
push ebx
push 0x12c
call fcn.00402510
test eax, eax
je case.0x409b8a.2
mov eax, dword [esi + 0xc]
add word [eax + 0x40c], bx
mov eax, dword [esi + 0xc]
cmp word [eax + 0x40c], 3
jle case.0x409b8a.2
mov edx, ebx
mov word [eax + 0x40c], dx
mov ecx, dword [esi + 0x10]
cmp word [ecx + 0x40c], 0
jne 0x409c51
push 0
push 0
push 0
push ebx
push 0
push 0x2bc
push 0
call fcn.00408750
mov ecx, dword [esi + 0x10]
push ebx
push 0xfa0
call fcn.00402510
test eax, eax
je 0x409c51
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov word [eax + 0x40c], cx
cmp byte [0x451ed5], 0
je 0x409c71
mov ecx, dword [esi + 0x10]
push 0
push 0
push 0
push ebx
push ebx
push 0x186
push 0
call fcn.00408750
cmp dword [0x4522a4], 0
jle 0x409c8f
mov ecx, dword [esi + 0x10]
push 0xa
call fcn.00407460
mov ecx, dword [0x44ed40]
call fcn.00421770
mov ecx, dword [0x44ee84]
call fcn.004012f0
mov ecx, dword [0x44ee84]
mov eax, dword [ecx + 0xc58]
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push 0
push 0x44d03c
push ecx
push 0
push 0
push eax
call edx
mov edi, eax
mov eax, dword [0x44ee84]
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 0x409cf5
mov byte [esi + 0x22], bl
mov ecx, dword [0x44ee84]
pop ebx
pop esi
add esp, 4
jmp fcn.00401250
pop ebx
pop esi
pop ecx
ret