Function at 0x409095
Capabilities:
Accept command line arguments
Check mutex on windows
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x446d5e
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x23a4
call fcn.00439160
mov eax, dword [0x458264]
xor eax, esp
mov dword [esp + 0x23a0], eax
push ebx
push esi
push edi
mov eax, dword [0x458264]
xor eax, esp
push eax
lea eax, [esp + 0x23b8]
mov dword fs:[0], eax
mov esi, ecx
lea edi, [esp + 0x64]
mov dword [esp + 0x38], esi
call fcn.0040acea
and dword [esp + 0x23c0], 0
mov eax, 0xea60
cmp dword [esp + 0xb4], eax
jae 0x409106
mov dword [esp + 0xb4], eax
push 0
push 0x44a07c
push 0x3e
push 0x2e72
call fcn.004262bf
add esp, 0xc
mov edi, eax
lea ebx, [esp + 0x68]
call fcn.0040adec
test al, al
jne 0x409132
push 1
call fcn.0042fa8f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
push str.__CEK
push 0x12
push 0x17e7
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
call fcn.00401f1d
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x23c4], 1
call fcn.0041d513
pop ecx
lea ecx, [esp + 0x28]
push ecx
push eax
xor eax, eax
mov byte [esp + 0x23c8], 2
call fcn.0042505c
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov edi, eax
call fcn.0040113c
mov byte [esp + 0x23c0], 0
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff0
call fcn.0040113c
mov ebx, 0x45a964
test edi, edi
je 0x409244
lea eax, [esp + 0x18]
push eax
call fcn.00426cc0
pop ecx
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
call dword [sym.imp.KERNEL32.DLL_GetCommandLineA]
push ebx
lea ecx, [esp + 0x2c]
mov edi, eax
call fcn.004021e1
push edi
mov byte [esp + 0x23c4], 3
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
push eax
push 0x44a0d0
push 0x1f
push 0x5ba
call fcn.004262bf
add esp, 0xc
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00403f05
add esp, 0x10
push 0
push 0x44a0f0
push 4
push 0x296c
call fcn.004262bf
mov edi, dword [esp + 0x38]
add esp, 0xc
push eax
push edi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [edi - 0x10]
mov byte [esp + 0x23c0], 0
call fcn.0040113c
push ebx
lea ecx, [esp + 0x20]
call fcn.004021e1
push ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0x23c4], 4
call fcn.004021e1
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x23c4], 5
call fcn.0041da01
pop ecx
push ebx
lea ecx, [esp + 0x38]
mov byte [esp + 0x23c4], 6
call fcn.004021e1
push ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0x23c4], 7
call fcn.004021e1
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
mov ecx, esi
mov byte [esp + 0x23c8], 8
call fcn.00409f51
call fcn.004235bf
mov eax, dword [esi]
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call dword [eax + 0x38]
test al, al
jne 0x409388
mov eax, dword [esp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x409318
lea eax, [esp + 0x18]
push str._r_n_r_n
push eax
lea ecx, [esp + 0x34]
call fcn.0040771d
pop ecx
pop ecx
mov byte [esp + 0x23c0], 9
mov eax, dword [eax]
push dword [eax - 0xc]
lea ecx, [esp + 0x20]
push eax
call fcn.00401ff8
mov byte [esp + 0x23c0], 8
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
lea eax, [esp + 0x1c]
push eax
call fcn.00422f24
pop ecx
call fcn.0041e0e6
test al, al
je 0x409331
call fcn.0040a5f1
call fcn.0041f011
call fcn.00422d6a
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.0040113c
lea ecx, [esp + 0x64]
call fcn.0040a9e8
xor eax, eax
inc eax
jmp 0x409f0e
push 0x20
call fcn.0041e0a8
pop ecx
test al, al
je 0x40939b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x4c]
lea esi, [esp + 0x30]
call fcn.0041f18c
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.0040a315
test al, al
jne 0x4093cc
lea esi, [esp + 0x1c]
call fcn.0041f222
mov esi, edi
call fcn.0040a577
jmp 0x409331
push 0x44a0f8
push 0x11
push 0x23d8
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x48]
call fcn.00401f1d
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x23c4], 0xa
call fcn.0041dbf8
pop ecx
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x23c4], 0xb
call fcn.00428781
neg al
sbb al, al
pop ecx
mov byte [esp + 0x23c0], 0xa
mov ecx, dword [esp + 0x18]
inc al
add ecx, 0xfffffff0
mov byte [esp + 0x17], al
call fcn.0040113c
cmp byte [esp + 0x17], 0
je 0x4094b0
call fcn.0041f2b7
push ebx
lea ecx, [esp + 0x24]
call fcn.004021e1
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x23c4], 0xc
call fcn.004263be
pop ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x23c4], 0xd
call fcn.0040222e
mov byte [esp + 0x23c0], 0xc
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
mov eax, dword [edi]
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call dword [eax + 0x28]
call fcn.0041f011
call fcn.00422d6a
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffff0
call fcn.0040113c
jmp 0x40933b
call fcn.004271d8
test al, al
jne 0x4094f9
call fcn.0041f306
lea eax, [esp + 0x18]
push eax
call fcn.004263d8
pop ecx
mov byte [esp + 0x23c0], 0xe
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov byte [esp + 0x23c0], 0xa
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
call fcn.0041f011
call fcn.00422d6a
jmp 0x40949f
call fcn.0041d987
test al, al
je 0x409516
push ecx
mov eax, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004269ec
pop ecx
call fcn.00426d35
pop ecx
push 0x44a06c
push 0xc
push 0x21a2
lea esi, [edi + 0x40]
call fcn.004262bf
add esp, 0xc
push eax
push 0x44a10c
push 0xf
push 0x77c
call fcn.004262bf
add esp, 0xc
push eax
push esi
call fcn.00403f05
add esp, 0xc
push dword [esi]
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.DLL_OpenMutexA]
mov dword [edi + 0x44], eax
test eax, eax
je 0x409586
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
call fcn.0041f355
lea eax, [esp + 0x18]
push eax
call fcn.004263f2
pop ecx
mov byte [esp + 0x23c0], 0xf
jmp 0x4094d1
push dword [esi]
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
xor esi, esi
mov dword [edi + 0x44], eax
cmp eax, esi
jne 0x4095c0
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
call fcn.0041f3a4
pop ecx
lea eax, [esp + 0x18]
push eax
call fcn.004263f2
pop ecx
mov byte [esp + 0x23c0], 0x10
jmp 0x4094d1
lea ecx, [esp + 0x38]
call fcn.00426594
mov dword [esp + 0x18], eax
push str.AC_9_
push 6
push 0x7a3
mov byte [esp + 0x23cc], 0x11
call fcn.004262bf
mov ecx, dword [esp + 0x24]
add esp, 0xc
push eax
call fcn.00406689
neg eax
sbb al, al
mov byte [esp + 0x23c0], 0xa
mov ecx, dword [esp + 0x38]
inc al
add ecx, 0xfffffff0
mov byte [esp + 0x17], al
call fcn.0040113c
cmp byte [esp + 0x17], 0
je 0x40961f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
call fcn.0041e0e6
test al, al
je 0x4096a1
lea eax, [esp + 0x18]
push eax
call fcn.0041d7c3
mov eax, dword [eax]
pop ecx
push esi
push dword [0x45bae8]
push esi
push esi
push esi
push esi
push esi
push esi
push 0x90000000
push eax
push 0x44a06c
push 0xc
push 0x21a2
call fcn.004262bf
add esp, 0xc
push eax
push 0x80
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov dword [edi + 0x48], eax
call fcn.0040113c
cmp dword [edi + 0x48], esi
jne 0x4096a1
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
call fcn.0041f456
pop ecx
lea eax, [esp + 0x18]
push eax
call fcn.004263f2
pop ecx
mov byte [esp + 0x23c0], 0x12
jmp 0x4094d1
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
call fcn.0041d648
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x50], 0xa
call fcn.004021e1
push ebx
lea ecx, [esp + 0x54]
mov byte [esp + 0x23c4], 0x13
call fcn.004021e1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x23c0], 0x14
call fcn.00402078
mov eax, dword [edi]
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call dword [eax + 0x48]
mov byte [esp + 0x17], al
test al, al
je 0x409857
push 5
pop eax
cmp dword [esp + 0x4c], eax
jne 0x409836
push 0x44a124
push 4
mov esi, 0x120f
push esi
mov dword [edi + 0x11c], eax
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
call fcn.00401f1d
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x23c8], 0x15
call fcn.0041d029
pop ecx
pop ecx
mov byte [esp + 0x23c0], 0x17
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff0
call fcn.0040113c
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jne 0x40981b
push 0x44a12c
push 8
push 0x1c3f
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.00401f1d
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x23c8], 0x18
call fcn.0041d029
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x23d0], 0x19
call fcn.0041e18b
add esp, 0x10
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x23c4], 0x1a
call fcn.0040222e
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffff0
call fcn.0040113c
mov byte [esp + 0x23c0], 0x17
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.0040113c
push dword [esp + 0x20]
push 0x44a124
push 4
push esi
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
mov byte [esp + 0x23c0], 0x14
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.0040113c
xor esi, esi
jmp 0x4098c1
cmp dword [esp + 0x4c], esi
je 0x4098c1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x50]
call fcn.0041f9e8
pop ecx
pop ecx
mov byte [esp + 0x17], 0
jmp 0x4098c1
push str..SAIBase.cpp
lea ecx, [esp + 0x3c]
call fcn.00401f1d
push 0x44a138
push 0x1c
push 0x1e9c
mov byte [esp + 0x23cc], 0x1b
call fcn.004262bf
add esp, 0xc
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
call fcn.0040771d
push eax
mov byte [esp + 0x23cc], 0x1c
call fcn.00422f24
mov ecx, dword [esp + 0x24]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040113c
mov byte [esp + 0x23c0], 0x14
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffff0
call fcn.0040113c
cmp byte [esp + 0x17], 0
jne 0x409950
mov esi, edi
call fcn.0040a5b4
xor esi, esi
inc esi
call fcn.0041f011
call fcn.00422d6a
mov ecx, dword [esp + 0x50]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x48]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.0040113c
lea ecx, [esp + 0x64]
call fcn.0040a9e8
mov eax, esi
jmp 0x409f0e
call fcn.0041d987
test al, al
jne 0x4099f2
mov eax, dword [edi + 0xf4]
cmp dword [eax - 0xc], esi
je 0x4099f2
push 4
call fcn.0041e0bb
pop ecx
test al, al
je 0x409982
call fcn.00420459
jmp 0x4098d6
lea eax, [edi + 0x44]
push eax
lea eax, [esp + 0x38]
push eax
push ecx
lea eax, [edi + 0xf8]
mov dword [esp + 0x4c], esp
mov ecx, esp
push eax
mov dword [esp + 0x34], esi
lea ebx, [esp + 0x34]
call fcn.00402206
push ecx
mov byte [esp + 0x23d0], 0x1d
lea eax, [edi + 0xf4]
mov dword [esp + 0x64], esp
mov ecx, esp
push eax
call fcn.00402206
mov ecx, ebx
mov byte [esp + 0x23d0], 0x14
call fcn.0040fec9
add esp, 0x10
mov esi, edi
mov bl, al
call fcn.0040a484
xor eax, eax
test bl, bl
sete al
push eax
call fcn.00409f34
mov esi, dword [esp + 0x24]
jmp 0x4098e0
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call dword [eax + 0x30]
test al, al
je 0x4098d3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x3c]
push ebx
lea ecx, [esp + 0x2c]
call fcn.004021e1
push ebx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x23c4], 0x1e
call fcn.004021e1
mov esi, 0x449e60
push esi
push str.C_U:P
push 0xc
mov byte [esp + 0x23cc], 0x1f
or dword [esp + 0x44], 0xffffffff
push 0x17cb
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
push esi
push 0x4494d0
push 9
push 0x17ac
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
push esi
push str.C_W_
push 0xf
push 0x25f2
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
call fcn.00401d98
cmp eax, 6
jle 0x409b09
lea eax, [esp + 0x24]
push eax
call fcn.0040115f
mov byte [esp + 0x23c4], 0x20
mov dword [esp], 0x4494f4
push 5
push 0xe4
call fcn.004262bf
add esp, 0xc
push eax
push dword [esp + 0x28]
call fcn.0042d042
pop ecx
pop ecx
test eax, eax
je 0x409af5
push 0x4494dc
push str.C_U:P
push 0xc
push 0x17cb
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
mov byte [esp + 0x23c0], 0x1f
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.0040113c
push ebx
lea ecx, [esp + 0x24]
call fcn.004021e1
push 0x10
mov byte [esp + 0x23c4], 0x21
call fcn.0041e0bb
pop ecx
test al, al
jne 0x409caf
mov eax, dword [edi + 0x11c]
xor esi, esi
inc esi
cmp eax, esi
je 0x409b59
jle 0x409cbd
cmp eax, 3
jle 0x409c6c
cmp eax, 4
je 0x409bf4
cmp eax, 5
jne 0x409cbd
lea eax, [esp + 0x28]
push eax
push dword [edi + 0x160]
lea eax, [edi + 0x124]
push dword [edi + 0x104]
push ecx
mov dword [esp + 0x70], esp
mov ecx, esp
push eax
call fcn.00402206
push ecx
lea eax, [edi + 0x120]
mov dword [esp + 0x70], esp
mov ecx, esp
push eax
mov byte [esp + 0x23d8], 0x25
call fcn.00402206
push dword [edi + 0x11c]
lea eax, [esp + 0x58]
push eax
lea ecx, [edi + 0x4c]
mov byte [esp + 0x23dc], 0x21
call fcn.004127ad
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x23c4], 0x26
call fcn.0040222e
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040113c
cmp dword [edi + 0x100], 0
jne 0x409cbd
mov eax, dword [edi + 0x64]
mov dword [edi + 0x104], eax
jmp 0x409cbd
push 0x449d88
push 6
push 0x18b2
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.00401f1d
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x23c8], 0x23
call fcn.0041d029
pop ecx
pop ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x23c4], 0x24
call fcn.0040222e
mov ecx, dword [esp + 0x58]
add ecx, 0xfffffff0
call fcn.0040113c
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.0040113c
lea eax, [edi + 0x128]
cmp dword [eax], 0
jne 0x409cbd
mov dword [eax], esi
jmp 0x409cbd
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x1f], 0
call fcn.0041d816
pop ecx
pop ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x23c4], 0x22
call fcn.0040222e
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x54]
add ecx, 0xfffffff0
call fcn.0040113c
cmp byte [esp + 0x17], 0
jne 0x409cbd
push 0x449a50
lea ecx, [esp + 0x24]
call fcn.0040227b
push dword [esp + 0x20]
push 0x449a54
push 7
push 0x20b1
call fcn.004262bf
add esp, 0xc
push eax
call fcn.0041cb5c
pop ecx
pop ecx
mov esi, edi
call fcn.0040a484
push str.C_U:P
push 0xc
push 0x17cb
call fcn.004262bf
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.00401f1d
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x23c8], 0x27
call fcn.0041d029
mov eax, dword [eax]
push 0x4494dc
push eax
call fcn.0042d042
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
inc bl
call fcn.0040113c
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.0040113c
test bl, bl
je 0x409d7e
mov eax, dword [edi + 0x64]
push eax
push 0x401286
push 0x402
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
xor ebx, ebx
push ebx
push ebx
push ebx
push 0x401e96
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateThread]
jmp 0x409d80
xor ebx, ebx
mov esi, dword [esp + 0x28]
cmp dword [esi - 0xc], ebx
jne 0x409df7
lea ecx, [esp + 0x1c]
call fcn.00402078
push dword [edi + 0xb4]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [edi + 0xf0]
push eax
call fcn.004115ac
mov eax, dword [edi + 0x78]
cmp eax, ebx
je 0x409dbe
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
push dword [esp + 0x38]
call fcn.00409f34
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
mov edi, eax
call fcn.0040113c
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
lea ecx, [esi - 0x10]
call fcn.0040113c
mov esi, edi
jmp 0x4098e0
call fcn.0041e0e6
test al, al
je 0x409e2f
lea eax, [esp + 0x40]
push eax
call fcn.004264b8
pop ecx
mov byte [esp + 0x23c0], 0x28
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040113c
push 0x44a178
push 0xa
push 0x1505
call fcn.004262bf
add esp, 0xc
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x30]
call fcn.0040771d
pop ecx
pop ecx
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x23c4], 0x29
call fcn.0040222e
mov byte [esp + 0x23c0], 0x21
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.0040113c
push 0xffffffffffffffff
call fcn.00409f34
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
mov edi, eax
call fcn.0040113c
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.0040113c
lea ecx, [esi - 0x10]
call fcn.0040113c
mov ecx, dword [esp + 0x50]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x48]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
call fcn.0040113c
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.0040113c
lea ecx, [esp + 0x64]
call fcn.0040a9e8
mov eax, edi
mov ecx, dword [esp + 0x23b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x23a0]
xor ecx, esp
call fcn.0042cc45
mov esp, ebp
pop ebp
ret 4