Function at 0x4178c4
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1e
push 0
push 0
dec ecx
jne 0x4178cc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4190d2
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x30]
mov eax, 1
call fcn.004058bc
mov eax, dword [ebp - 0x30]
mov edx, 0x4190e8
call fcn.00403994
jne 0x417914
push 1
push 0x4190f0
call sub.kernel32.dll_WinExec
call fcn.004034f0
lea ecx, [ebp - 0x38]
xor edx, edx
xor eax, eax
call fcn.00416c4c
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00405bb8
mov eax, dword [ebp - 0x34]
call fcn.00405c10
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.004058bc
mov eax, dword [ebp - 0x3c]
call fcn.0040a940
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov cl, 2
mov edx, 0xffffffdc
call fcn.004069b8
mov edx, 0x41ba9c
mov eax, dword [ebp - 0x10]
mov ecx, 8
call fcn.004068c8
mov edx, 0x41baa4
mov eax, dword [ebp - 0x10]
mov ecx, 8
call fcn.004068c8
mov edx, 0x41baac
mov eax, dword [ebp - 0x10]
mov ecx, 8
call fcn.004068c8
mov edx, 0x41bab4
mov eax, dword [ebp - 0x10]
mov ecx, 8
call fcn.004068c8
mov edx, 0x41bacc
mov eax, dword [ebp - 0x10]
mov ecx, 1
call fcn.004068c8
lea edx, [ebp - 0x2b]
mov eax, dword [ebp - 0x10]
mov ecx, 1
call fcn.004068c8
lea edx, [ebp - 0x2a]
mov eax, dword [ebp - 0x10]
mov ecx, 1
call fcn.004068c8
lea edx, [ebp - 0x29]
mov eax, dword [ebp - 0x10]
mov ecx, 1
call fcn.004068c8
cmp byte [ebp - 0x29], 0xf1
je 0x417a17
mov eax, dword [ebp - 0x10]
call fcn.0040a058
xor eax, eax
call fcn.00416d10
push 0x10
push 0x4190fc
push 0x419104
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_MessageBoxA_1
call fcn.004034f0
mov eax, dword [0x41ba9c]
mov edx, dword [0x41baa0]
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x417a31
call fcn.00402c68
mov edx, eax
mov eax, dword [ebp - 0x10]
xor ecx, ecx
call fcn.004069b8
xor eax, eax
mov al, byte [ebp - 0x2a]
inc eax
push eax
mov eax, 0x41ba78
mov ecx, 1
mov edx, dword [0x416858]
call fcn.004041ec
add esp, 4
xor ebx, ebx
mov bl, byte [ebp - 0x2a]
test ebx, ebx
jl 0x417a95
inc ebx
xor esi, esi
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x40]
mov eax, dword [0x41ba78]
test eax, eax
je 0x417a84
cmp esi, dword [eax - 4]
jb 0x417a89
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x417a68
mov eax, 0x62
call fcn.00416c3c
mov edi, eax
mov ebx, edi
shl ebx, 2
push ebx
mov eax, 0x41ba94
mov ecx, 1
mov edx, dword [0x416938]
call fcn.004041ec
add esp, 4
dec ebx
test ebx, ebx
jl 0x417af4
inc ebx
xor esi, esi
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x44]
mov eax, dword [0x41ba94]
test eax, eax
je 0x417ae3
cmp esi, dword [eax - 4]
jb 0x417ae8
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x417ac7
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x417bec
inc ebx
xor esi, esi
lea eax, [ebp - 0x48]
push eax
mov eax, esi
shl eax, 2
mov edx, dword [0x41ba94]
test edx, edx
je 0x417b1a
cmp eax, dword [edx - 4]
jb 0x417b1f
call fcn.00402c68
mov eax, dword [edx + eax*4]
call fcn.0040d548
test eax, eax
jns 0x417b30
call fcn.00402c68
mov edx, esi
shl edx, 2
add edx, 2
mov ecx, dword [0x41ba94]
test ecx, ecx
je 0x417b47
cmp edx, dword [ecx - 4]
jb 0x417b4c
call fcn.00402c68
mov edx, dword [ecx + edx*4]
push edx
mov edx, esi
shl edx, 2
inc edx
mov ecx, dword [0x41ba94]
test ecx, ecx
je 0x417b65
cmp edx, dword [ecx - 4]
jb 0x417b6a
call fcn.00402c68
mov edx, dword [ecx + edx*4]
pop ecx
call fcn.00416fa8
mov edx, dword [ebp - 0x48]
mov eax, dword [0x41ba94]
test eax, eax
je 0x417b84
cmp esi, dword [eax - 4]
jb 0x417b89
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
mov eax, dword [0x41ba94]
test eax, eax
je 0x417b9f
cmp esi, dword [eax - 4]
jb 0x417ba4
call fcn.00402c68
cmp dword [eax + esi*4], 0
jne 0x417be4
mov eax, dword [0x41ba94]
test eax, eax
je 0x417bb8
cmp esi, dword [eax - 4]
jb 0x417bbd
call fcn.00402c68
lea eax, [eax + esi*4]
mov edx, esi
shl edx, 2
add edx, 3
mov ecx, dword [0x41ba94]
test ecx, ecx
je 0x417bd7
cmp edx, dword [ecx - 4]
jb 0x417bdc
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x417b02
push edi
mov eax, 0x41ba94
mov ecx, 1
mov edx, dword [0x416938]
call fcn.004041ec
add esp, 4
mov eax, 0x6e
call fcn.00416c14
mov byte [0x41a4c8], al
call fcn.0040d6c8
mov ebx, eax
test ebx, ebx
jle 0x417e76
mov esi, 1
lea edx, [ebp - 0xc]
mov eax, esi
call fcn.004058bc
lea edx, [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.0040a7fc
mov eax, dword [ebp - 8]
mov edx, 0x419154
call fcn.00403994
jne 0x417c53
mov byte [0x41a4c8], 1
mov eax, dword [ebp - 8]
mov edx, 0x419160
call fcn.00403994
jne 0x417c69
mov byte [0x41a4cc], 1
mov eax, dword [ebp - 8]
mov edx, 0x41916c
call fcn.00403994
jne 0x417c9e
mov eax, 0x6b
mov edx, dword [0x41ba78]
test edx, edx
je 0x417c8c
cmp eax, dword [edx - 4]
jb 0x417c91
call fcn.00402c68
lea eax, [edx + eax*4]
mov edx, 0x419178
call fcn.0040363c
mov eax, dword [ebp - 8]
mov edx, 0x419184
call fcn.00403994
jne 0x417cd3
mov eax, 0x3f
mov edx, dword [0x41ba78]
test edx, edx
je 0x417cc1
cmp eax, dword [edx - 4]
jb 0x417cc6
call fcn.00402c68
lea eax, [edx + eax*4]
mov edx, 0x419178
call fcn.0040363c
lea eax, [ebp - 0x4c]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00403aa8
mov eax, dword [ebp - 0x4c]
mov edx, 0x419190
call fcn.00403994
jne 0x417d42
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 8]
call fcn.00403848
mov ecx, eax
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.00403aa8
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x50]
call fcn.00405934
mov edx, dword [ebp - 0x50]
mov eax, 0x3a
mov ecx, dword [0x41ba78]
test ecx, ecx
je 0x417d35
cmp eax, dword [ecx - 4]
jb 0x417d3a
call fcn.00402c68
lea eax, [ecx + eax*4]
call fcn.0040363c
lea eax, [ebp - 0x58]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00403aa8
mov eax, dword [ebp - 0x58]
mov edx, 0x41919c
call fcn.00403994
jne 0x417d9b
mov eax, 0x6a
mov edx, dword [0x41ba78]
test edx, edx
je 0x417d7b
cmp eax, dword [edx - 4]
jb 0x417d80
call fcn.00402c68
lea eax, [edx + eax*4]
push eax
mov eax, dword [ebp - 8]
call fcn.00403848
mov ecx, eax
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.00403aa8
lea eax, [ebp - 0x5c]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00403aa8
mov eax, dword [ebp - 0x5c]
mov edx, 0x4191a8
call fcn.00403994
jne 0x417ddc
push 0x41babc
mov eax, dword [ebp - 8]
call fcn.00403848
mov ecx, eax
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.00403aa8
lea eax, [ebp - 0x60]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00403aa8
mov eax, dword [ebp - 0x60]
mov edx, 0x4191b4
call fcn.00403994
jne 0x417e6e
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 8]
call fcn.00403848
mov ecx, eax
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.00403aa8
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x64]
call fcn.00416df8
mov edx, dword [ebp - 0x64]
mov eax, 0x1d
mov ecx, dword [0x41ba78]
test ecx, ecx
je 0x417e3e
cmp eax, dword [ecx - 4]
jb 0x417e43
call fcn.00402c68
mov eax, dword [ecx + eax*4]
call fcn.00403994
jne 0x417e6e
mov eax, 0x1d
mov edx, dword [0x41ba78]
test edx, edx
je 0x417e61
cmp eax, dword [edx - 4]
jb 0x417e66
call fcn.00402c68
lea eax, [edx + eax*4]
call fcn.004035e8
inc esi
dec ebx
jne 0x417c28
cmp byte [0x41a4c8], 0
je 0x417eaa
mov eax, 0x1d
mov edx, dword [0x41ba78]
test edx, edx
je 0x417e93
cmp eax, dword [edx - 4]
jb 0x417e98
call fcn.00402c68
cmp dword [edx + eax*4], 0
je 0x417eaa
mov al, 1
call fcn.00416d10
call fcn.004034f0
mov eax, 0x41
mov edx, dword [0x41ba78]
test edx, edx
je 0x417ebe
cmp eax, dword [edx - 4]
jb 0x417ec3
call fcn.00402c68
mov eax, dword [edx + eax*4]
lea ecx, [ebp - 0x6c]
xor edx, edx
call fcn.00411e24
mov edx, dword [ebp - 0x6c]
mov eax, 0x41bac8
call fcn.0040363c
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov edx, dword [0x41bac8]
call fcn.0040b6b4
cmp byte [0x41a4c8], 0
jne 0x417f0c
push 5
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_ShowWindow
jmp 0x417f1a
mov eax, dword [0x41a53c]
mov eax, dword [eax]
xor edx, edx
call fcn.0040b738
mov eax, 0x32
call fcn.00416c3c
mov edi, eax
shl edi, 3
sub edi, eax
push edi
mov eax, 0x41ba6c
mov ecx, 1
mov edx, dword [0x4167f8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x417f7b
inc ebx
xor esi, esi
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x70]
mov eax, dword [0x41ba6c]
test eax, eax
je 0x417f6a
cmp esi, dword [eax - 4]
jb 0x417f6f
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x417f4e
mov eax, 0x60
call fcn.00416c3c
lea edi, [eax + eax*2]
push edi
mov eax, 0x41ba90
mov ecx, 1
mov edx, dword [0x416918]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x417fd8
inc ebx
xor esi, esi
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x74]
mov eax, dword [0x41ba90]
test eax, eax
je 0x417fc7
cmp esi, dword [eax - 4]
jb 0x417fcc
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x417fab
mov eax, 0x1f
call fcn.00416c3c
mov edi, eax
add edi, edi
push edi
mov eax, 0x41ba98
mov ecx, 1
mov edx, dword [0x416958]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x418036
inc ebx
xor esi, esi
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x78]
mov eax, dword [0x41ba98]
test eax, eax
je 0x418025
cmp esi, dword [eax - 4]
jb 0x41802a
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418009
mov eax, 0x36
call fcn.00416c3c
mov edi, eax
shl edi, 3
push edi
mov eax, 0x41ba68
mov ecx, 1
mov edx, dword [0x4167d8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x418095
inc ebx
xor esi, esi
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x7c]
mov eax, dword [0x41ba68]
test eax, eax
je 0x418084
cmp esi, dword [eax - 4]
jb 0x418089
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418068
mov eax, 0x43
call fcn.00416c3c
lea edi, [eax + eax*2]
push edi
mov eax, 0x41ba70
mov ecx, 1
mov edx, dword [0x416818]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x4180f2
inc ebx
xor esi, esi
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x80]
mov eax, dword [0x41ba70]
test eax, eax
je 0x4180e1
cmp esi, dword [eax - 4]
jb 0x4180e6
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x4180c5
mov eax, 0x5d
call fcn.00416c3c
mov edi, eax
add edi, edi
push edi
mov eax, 0x41ba74
mov ecx, 1
mov edx, dword [0x416838]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x418156
inc ebx
xor esi, esi
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x84]
mov eax, dword [0x41ba74]
test eax, eax
je 0x418145
cmp esi, dword [eax - 4]
jb 0x41814a
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418123
mov eax, 0x28
call fcn.00416c3c
mov ebx, eax
mov eax, 0x19
call fcn.00416c3c
add ebx, eax
mov edi, ebx
add edi, edi
lea edi, [edi + edi*2]
push edi
mov eax, 0x41ba64
mov ecx, 1
mov edx, dword [0x4167b8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x4181cb
inc ebx
xor esi, esi
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x88]
mov eax, dword [0x41ba64]
test eax, eax
je 0x4181ba
cmp esi, dword [eax - 4]
jb 0x4181bf
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418198
mov eax, 0x18
call fcn.00416c3c
mov edi, eax
add edi, edi
lea edi, [edi + edi*2]
push edi
mov eax, 0x41ba84
mov ecx, 1
mov edx, dword [0x4168b8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x418232
inc ebx
xor esi, esi
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x8c]
mov eax, dword [0x41ba84]
test eax, eax
je 0x418221
cmp esi, dword [eax - 4]
jb 0x418226
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x4181ff
mov eax, 0x2d
call fcn.00416c3c
mov edi, eax
add edi, edi
push edi
mov eax, 0x41ba88
mov ecx, 1
mov edx, dword [0x4168d8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x418296
inc ebx
xor esi, esi
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x90]
mov eax, dword [0x41ba88]
test eax, eax
je 0x418285
cmp esi, dword [eax - 4]
jb 0x41828a
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418263
mov eax, 0x14
call fcn.00416c3c
mov edi, eax
add edi, edi
push edi
mov eax, 0x41ba8c
mov ecx, 1
mov edx, dword [0x4168f8]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x4182fa
inc ebx
xor esi, esi
lea edx, [ebp - 0x94]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x94]
mov eax, dword [0x41ba8c]
test eax, eax
je 0x4182e9
cmp esi, dword [eax - 4]
jb 0x4182ee
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x4182c7
mov eax, 0x1a
call fcn.00416c3c
mov edi, eax
shl edi, 2
push edi
mov eax, 0x41ba80
mov ecx, 1
mov edx, dword [0x416898]
call fcn.004041ec
add esp, 4
mov ebx, edi
dec ebx
test ebx, ebx
jl 0x41835f
inc ebx
xor esi, esi
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x98]
mov eax, dword [0x41ba80]
test eax, eax
je 0x41834e
cmp esi, dword [eax - 4]
jb 0x418353
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x41832c
mov eax, 0x1a
call fcn.00416c3c
mov edi, eax
mov eax, 0x39
call fcn.00416c3c
imul edi, eax
lea eax, [edi + 1]
push eax
mov eax, 0x41ba7c
mov ecx, 1
mov edx, dword [0x416878]
call fcn.004041ec
add esp, 4
mov ebx, edi
test ebx, ebx
jle 0x4183d2
mov esi, 1
lea edx, [ebp - 0x9c]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x41ba7c]
test eax, eax
je 0x4183c1
cmp esi, dword [eax - 4]
jb 0x4183c6
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x41839f
mov eax, dword [0x41baac]
mov edx, dword [0x41bab0]
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x4183ec
call fcn.00402c68
mov edx, eax
mov eax, dword [ebp - 0x10]
xor ecx, ecx
call fcn.004069b8
cmp byte [0x41bacc], 0
je 0x418479
lea ecx, [ebp - 8]
xor edx, edx
mov eax, 2
call fcn.00416c4c
mov eax, dword [ebp - 8]
call fcn.0040a968
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, 0x4191c4
call fcn.004068d0
push dword [0x41baa8]
push dword [0x41baa4]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00416e88
mov eax, dword [ebp - 0x14]
call fcn.0040a058
mov dl, 1
mov eax, dword [0x40e028]
call fcn.0040e3f8
mov ebx, eax
lea eax, [ebp - 0xa0]
call fcn.0040d840
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0040e884
mov eax, ebx
call fcn.00402cd8
jmp 0x4184f2
xor ebx, ebx
mov bl, byte [ebp - 0x2b]
test ebx, ebx
jle 0x4184f2
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov eax, dword [ebp - 0xa4]
push eax
lea eax, [ebp - 0xa8]
call fcn.0040d840
mov edx, dword [ebp - 0xa8]
lea eax, [ebp - 8]
pop ecx
call fcn.00403894
mov eax, dword [ebp - 8]
call fcn.0040a968
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0xac]
mov eax, dword [ebp - 0x10]
call fcn.00406938
mov eax, dword [ebp - 0xac]
call fcn.0040d548
mov edi, eax
mov eax, edi
cdq
push edx
push eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.00416e88
mov eax, dword [ebp - 0x14]
call fcn.0040a058
dec ebx
jne 0x418482
mov eax, dword [ebp - 0x10]
call fcn.0040a058
cmp dword [0x41babc], 0
je 0x41859a
mov byte [0x41a4c4], 0xff
mov eax, 0x1a
call fcn.00416c3c
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x418587
inc ebx
xor esi, esi
mov eax, esi
shl eax, 2
mov edx, dword [0x41ba80]
test edx, edx
je 0x418536
cmp eax, dword [edx - 4]
jb 0x41853b
call fcn.00402c68
mov eax, dword [edx + eax*4]
lea edx, [ebp - 0xb0]
call fcn.0040a7fc
mov eax, dword [ebp - 0xb0]
push eax
lea edx, [ebp - 0xb4]
mov eax, dword [0x41babc]
call fcn.0040a7fc
mov eax, dword [ebp - 0xb4]
pop edx
call fcn.00403b8c
test eax, eax
jle 0x418583
mov eax, esi
cmp eax, 0xff
jbe 0x41857e
call fcn.00402c68
mov byte [0x41a4c4], al
inc esi
dec ebx
jne 0x418522
cmp byte [0x41a4c4], 0xff
jne 0x41859a
mov eax, 0x41babc
call fcn.004035e8
mov eax, 0x1a
call fcn.00416c3c
dec eax
jle 0x4185f1
cmp dword [0x41babc], 0
jne 0x4185f1
mov edx, dword [0x41a53c]
mov edx, dword [edx]
mov eax, dword [0x41a4f0]
call fcn.0040f314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.00407ad0
mov eax, dword [0x41a4f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
call fcn.00408b50
cmp byte [0x41a4d0], 0
jne 0x4185f1
mov al, 1
call fcn.00416d10
call fcn.004034f0
mov eax, 0x1a
call fcn.00416c3c
dec eax
jle 0x41869e
cmp byte [0x41a4c4], 0
jbe 0x41869e
mov eax, 0x41babc
xor edx, edx
mov dl, byte [0x41a4c4]
shl edx, 2
mov ecx, dword [0x41ba80]
test ecx, ecx
je 0x41862e
cmp edx, dword [ecx - 4]
jb 0x418633
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.0040363c
mov eax, 0x39
call fcn.00416c3c
mov ebx, eax
test ebx, ebx
jle 0x4186c1
mov esi, 1
mov eax, 0x39
call fcn.00416c3c
xor edx, edx
mov dl, byte [0x41a4c4]
imul edx
add eax, esi
mov edx, dword [0x41ba7c]
test edx, edx
je 0x418675
cmp eax, dword [edx - 4]
jb 0x41867a
call fcn.00402c68
mov edx, dword [edx + eax*4]
mov eax, dword [0x41ba7c]
test eax, eax
je 0x41868b
cmp esi, dword [eax - 4]
jb 0x418690
call fcn.00402c68
lea eax, [eax + esi*4]
call fcn.0040363c
inc esi
dec ebx
jne 0x418650
jmp 0x4186c1
mov eax, 0x41babc
xor edx, edx
mov ecx, dword [0x41ba80]
test ecx, ecx
je 0x4186b4
cmp edx, dword [ecx - 4]
jb 0x4186b9
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.0040363c
lea eax, [ebp - 8]
xor edx, edx
mov dl, byte [0x41a4c4]
shl edx, 2
add edx, 2
mov ecx, dword [0x41ba80]
test ecx, ecx
je 0x4186e1
cmp edx, dword [ecx - 4]
jb 0x4186e6
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.00403680
cmp dword [ebp - 8], 0
je 0x418712
mov eax, dword [ebp - 8]
call fcn.0040d548
cmp eax, 0xff
jbe 0x418708
call fcn.00402c68
mov edx, dword [0x41a50c]
mov byte [edx], al
jmp 0x41871a
mov eax, dword [0x41a50c]
mov byte [eax], 0xf
lea eax, [ebp - 8]
xor edx, edx
mov dl, byte [0x41a4c4]
shl edx, 2
add edx, 3
mov ecx, dword [0x41ba80]
test ecx, ecx
je 0x41873a
cmp edx, dword [ecx - 4]
jb 0x41873f
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.00403680
cmp dword [ebp - 8], 0
je 0x41876b
mov eax, dword [ebp - 8]
call fcn.0040d548
cmp eax, 0xff
jbe 0x418761
call fcn.00402c68
mov edx, dword [0x41a57c]
mov byte [edx], al
jmp 0x418773
mov eax, dword [0x41a57c]
mov byte [eax], 0x10
mov eax, 0x3d
call fcn.00416c3c
call fcn.00409b80
test al, al
je 0x418826
cmp byte [0x41a4c8], 0
jne 0x41881a
push 0x30
mov eax, 0x41
mov edx, dword [0x41ba78]
test edx, edx
je 0x4187ad
cmp eax, dword [edx - 4]
jb 0x4187b2
call fcn.00402c68
mov eax, dword [edx + eax*4]
call fcn.00403a48
push eax
mov eax, 0x3e
mov edx, dword [0x41ba78]
test edx, edx
je 0x4187cf
cmp eax, dword [edx - 4]
jb 0x4187d4
call fcn.00402c68
mov ecx, dword [edx + eax*4]
mov eax, 0x34
mov edx, dword [0x41ba7c]
test edx, edx
je 0x4187eb
cmp eax, dword [edx - 4]
jb 0x4187f0
call fcn.00402c68
mov edx, dword [edx + eax*4]
lea eax, [ebp - 0xb8]
call fcn.00403894
mov eax, dword [ebp - 0xb8]
call fcn.00403a48
push eax
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_MessageBoxA_1
mov al, 1
call fcn.00416d10
call fcn.004034f0
mov eax, 0x63
call fcn.00416c14
test al, al
je 0x418888
call fcn.00417180
test al, al
jne 0x418888
push 0x30
mov eax, dword [0x41bac8]
call fcn.00403a48
push eax
mov eax, 0x55
mov edx, dword [0x41ba7c]
test edx, edx
je 0x41885e
cmp eax, dword [edx - 4]
jb 0x418863
call fcn.00402c68
mov eax, dword [edx + eax*4]
call fcn.00403a48
push eax
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_MessageBoxA_1
mov al, 1
call fcn.00416d10
call fcn.004034f0
mov eax, 0x64
call fcn.00416c14
test al, al
je 0x4189e1
mov eax, 0x64
mov edx, dword [0x41ba78]
test edx, edx
je 0x4188ae
cmp eax, dword [edx - 4]
jb 0x4188b3
call fcn.00402c68
mov eax, dword [edx + eax*4]
call fcn.0040553c
fstp qword [ebp - 0x20]
wait
call fcn.00417008
fstp qword [ebp - 0x28]
wait
mov eax, 0x55
call fcn.00416c14
test al, al
je 0x4188e1
fld qword [ebp - 0x28]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
jb 0x418902
mov eax, 0x55
call fcn.00416c14
test al, al
jne 0x4189e1
fld qword [ebp - 0x28]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
je 0x4189e1
lea eax, [ebp - 8]
mov edx, 0x56
mov ecx, dword [0x41ba7c]
test ecx, ecx
je 0x418919
cmp edx, dword [ecx - 4]
jb 0x41891e
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.00403680
mov eax, 2
call fcn.00416c14
test al, al
je 0x41896c
mov esi, 4
push dword [ebp - 8]
push 0x4191d4
mov eax, 0x57
mov edx, dword [0x41ba7c]
test edx, edx
je 0x418955
cmp eax, dword [edx - 4]
jb 0x41895a
call fcn.00402c68
push dword [edx + eax*4]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00403908
jmp 0x41896e
xor esi, esi
or esi, 0x30
test esi, esi
jns 0x41897a
call fcn.00402c68
push esi
mov eax, dword [0x41bac8]
call fcn.00403a48
push eax
mov eax, dword [ebp - 8]
call fcn.00403a48
push eax
mov eax, dword [0x41a53c]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_MessageBoxA_1
cmp eax, 6
jne 0x4189d5
push 1
push 0
push 0
mov eax, 2
mov edx, dword [0x41ba78]
test edx, edx
je 0x4189be
cmp eax, dword [edx - 4]
jb 0x4189c3
call fcn.00402c68
mov eax, dword [edx + eax*4]
call fcn.00403a48
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteA
mov al, 1
call fcn.00416d10
call fcn.004034f0
mov eax, 0x67
call fcn.00416c14
test al, al
je 0x418abb
lea eax, [ebp - 8]
mov edx, 0x68
mov ecx, dword [0x41ba78]
test ecx, ecx
je 0x418a0a
cmp edx, dword [ecx - 4]
jb 0x418a0f
call fcn.00402c68
mov edx, dword [ecx + edx*4]
call fcn.00403680
mov eax, 0x69
call fcn.00416c3c
cmp eax, 2
jge 0x418a95
mov ebx, 1
xor esi, esi
jmp 0x418a8b
mov esi, ebx
mov eax, 0x69
call fcn.00416c3c
sub eax, 1
jb 0x418a44
je 0x418a58
jmp 0x418a62
mov eax, dword [ebp - 8]
call fcn.00403a48
push eax
push 0
call sub.user32.dll_FindWindowA
mov ebx, eax
jmp 0x418a62
mov eax, dword [ebp - 8]
call fcn.00417554
mov ebx, eax
test ebx, ebx
je 0x418a8b
mov eax, dword [0x41a53c]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x1c]
je 0x418a8b
mov eax, dword [0x41ba60]
mov eax, dword [eax + 0x18]
cmp ebx, dword [eax + 0x1c]
je 0x418a8b
push 0
push 0
push 0x10
push ebx
call sub.user32.dll_PostMessageA
test ebx, ebx
je 0x418abb
cmp ebx, esi
jne 0x418a2f
jmp 0x418abb
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0040a7fc
call fcn.0040d2b8
cmp al, 3
jbe 0x418ab3
mov eax, dword [ebp - 0xc]
call fcn.00417754
jmp 0x418abb
mov eax, dword [ebp - 0xc]
call fcn.00417644
mov eax, 1
call fcn.00416c14
test al, al
je 0x418f21
cmp byte [0x41a4c8], 0
jne 0x418f21
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bdd0
xor edx, edx
call fcn.00405350
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
xor ecx, ecx
xor edx, edx
call fcn.00409b9c
push eax
push 1
call sub.user32.dll_GetSystemMetrics
push eax
push 0
call sub.user32.dll_GetSystemMetrics
mov edx, eax
pop ecx
pop eax
call fcn.0040bc00
call fcn.0040b828
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040baac
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040ba84
pop edx
call fcn.0040c4ec
mov edx, dword [0x41a538]
mov dword [edx], eax
mov eax, 3
call fcn.00416c14
test al, al
je 0x418bc2
mov eax, 6
call fcn.00416c14
xor al, 1
push eax
mov eax, 4
call fcn.00416c3c
push eax
mov eax, 5
call fcn.00416c3c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040baac
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040ba84
push eax
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.0040c920
call fcn.0040a778
pop edx
pop ecx
call fcn.00417268
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.00408e60
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bdd0
pop edx
call fcn.00405350
jmp 0x418d48
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a510]
mov dword [edx], eax
lea ecx, [ebp - 0xbc]
xor edx, edx
mov eax, 6
call fcn.00416c4c
mov edx, dword [ebp - 0xbc]
mov eax, dword [0x41a510]
mov eax, dword [eax]
call fcn.0040c9b8
mov eax, 7
call fcn.00416c3c
sub eax, 1
jb 0x418c14
je 0x418c37
dec eax
je 0x418c92
jmp 0x418d48
mov eax, dword [0x41a510]
mov eax, dword [eax]
call fcn.00408e60
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bdd0
pop edx
call fcn.00405350
jmp 0x418d48
lea edx, [ebp - 0xcc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040b868
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.0040c920
call fcn.0040a778
mov edx, eax
mov eax, dword [0x41a510]
mov eax, dword [eax]
pop ecx
call fcn.0040c6c4
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.00408e60
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bdd0
pop edx
call fcn.00405350
jmp 0x418d48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040baac
mov edx, dword [0x41a510]
mov edx, dword [edx]
sub eax, dword [edx + 0x18]
mov dword [ebp - 0xd0], eax
fild dword [ebp - 0xd0]
fdiv dword [0x4191d8]
call fcn.00402984
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x418ccd
call fcn.00402c68
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040ba84
mov edx, dword [0x41a510]
mov edx, dword [edx]
sub eax, dword [edx + 0x1c]
mov dword [ebp - 0xd4], eax
fild dword [ebp - 0xd4]
fdiv dword [0x4191d8]
call fcn.00402984
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x418d09
call fcn.00402c68
push eax
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.0040c920
call fcn.0040a778
mov edx, eax
mov eax, dword [0x41a510]
mov eax, dword [eax]
pop ecx
call fcn.0040c614
mov eax, dword [0x41a538]
mov eax, dword [eax]
call fcn.00408e60
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bdd0
pop edx
call fcn.00405350
mov eax, 8
mov edx, dword [0x41ba78]
test edx, edx
je 0x418d5c
cmp eax, dword [edx - 4]
jb 0x418d61
call fcn.00402c68
mov eax, dword [edx + eax*4]
lea ecx, [ebp - 0xd8]
xor edx, edx
call fcn.00411e24
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040b6b4
mov eax, 9
mov edx, dword [0x41ba78]
test edx, edx
je 0x418d96
cmp eax, dword [edx - 4]
jb 0x418d9b
call fcn.00402c68
mov eax, dword [edx + eax*4]
lea ecx, [ebp - 0xdc]
xor edx, edx
call fcn.00411e24
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0040b6b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040bd98
mov ebx, eax
mov eax, 0xa
call fcn.00416c3c
mov ecx, eax
mov eax, ebx
mov edx, 4
call fcn.0040a394
mov eax, 0xb
mov edx, dword [0x41ba78]
test edx, edx
je 0x418df5
cmp eax, dword [edx - 4]
jb 0x418dfa
call fcn.00402c68
mov edx, dword [edx + eax*4]
mov eax, ebx
call fcn.0040d398
mov eax, 0xc
call fcn.00416c3c
mov edx, eax
mov eax, ebx
call fcn.00405330
mov eax, 0xd
call fcn.00416c3c
mov edx, eax
cmp edx, 0xff
jbe 0x418e30
call fcn.00402c68
mov eax, ebx
call fcn.00405390
mov eax, 0xe
call fcn.00416c3c
mov edx, eax
mov eax, ebx
call fcn.0040a3c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0040bd98
mov ebx, eax
mov eax, 0xf
call fcn.00416c3c
mov edx, eax
mov eax, ebx
call fcn.0040a3c8
mov eax, 0x10
call fcn.00416c3c
mov edx, eax
mov eax, ebx
call fcn.00405330
mov eax, 0x11
call fcn.00416c3c
mov edx, eax
cmp edx, 0xff
jbe 0x418e96
call fcn.00402c68
mov eax, ebx
call fcn.00405390
mov eax, 0x12
call fcn.00416c3c
mov ecx, eax
mov eax, ebx
mov edx, 4
call fcn.0040a394
mov eax, 0x13
mov edx, dword [0x41ba78]
test edx, edx
je 0x418ec9
cmp eax, dword [edx - 4]
jb 0x418ece
call fcn.00402c68
mov edx, dword [edx + eax*4]
mov eax, ebx
call fcn.0040d398
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040baac
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0040baac
sub ebx, eax
sub ebx, 8
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040ba84
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
call fcn.0040ba84
pop edx
sub edx, eax
sub edx, 8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
pop ecx
call fcn.00409b9c
jmp 0x418f2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.00407ad0
mov eax, 0x31
call fcn.00416c14
test al, al
je 0x418f6f
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a534]
mov dword [edx], eax
lea ecx, [ebp - 0xe0]
xor edx, edx
mov eax, 4
call fcn.00416c4c
mov edx, dword [ebp - 0xe0]
mov eax, dword [0x41a534]
mov eax, dword [eax]
call fcn.0040c9b8
mov eax, 0x3f
call fcn.00416c14
test al, al
je 0x418fb2
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a518]
mov dword [edx], eax
lea ecx, [ebp - 0xe4]
xor edx, edx
mov eax, 5
call fcn.00416c4c
mov edx, dword [ebp - 0xe4]
mov eax, dword [0x41a518]
mov eax, dword [eax]
call fcn.0040c9b8
mov eax, 0x70
call fcn.00416c14
test al, al
je 0x418ff5
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a520]
mov dword [edx], eax
lea ecx, [ebp - 0xe8]
xor edx, edx
mov eax, 7
call fcn.00416c4c
mov edx, dword [ebp - 0xe8]
mov eax, dword [0x41a520]
mov eax, dword [eax]
call fcn.0040c9b8
mov eax, 0x58
call fcn.00416c14
test al, al
jne 0x41901f
mov eax, 0x59
call fcn.00416c14
test al, al
jne 0x41901f
mov eax, 0x5a
call fcn.00416c14
test al, al
je 0x419054
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a54c]
mov dword [edx], eax
lea ecx, [ebp - 0xec]
xor edx, edx
mov eax, 8
call fcn.00416c4c
mov edx, dword [ebp - 0xec]
mov eax, dword [0x41a54c]
mov eax, dword [eax]
call fcn.0040c9b8
mov eax, 0x1d
call fcn.00416c14
test al, al
je 0x419097
xor edx, edx
xor eax, eax
call fcn.0040c4ec
mov edx, dword [0x41a588]
mov dword [edx], eax
lea ecx, [ebp - 0xf0]
xor edx, edx
mov eax, 9
call fcn.00416c4c
mov edx, dword [ebp - 0xf0]
mov eax, dword [0x41a588]
mov eax, dword [eax]
call fcn.0040c9b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4190d9
lea eax, [ebp - 0xf0]
mov edx, 7
call fcn.0040360c
lea eax, [ebp - 0xbc]
mov edx, 0x24
call fcn.0040360c
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0040360c
ret