Function at 0x40158f
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Enumerate pe sections
Get number of processors
Inspect section memory permissions
Resolve function by parsing pe exports
Set console window title

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e8
mov eax, dword [0x416004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
and dword [ebp - 0x180], 0
and dword [ebp - 0x174], 0
and dword [ebp - 0x1b4], 0
and dword [ebp - 0x178], 0
and dword [ebp - 0x170], 0
and dword [ebp - 0x25c], 0
and dword [ebp - 0x24c], 0
and dword [ebp - 0x1e0], 0
and dword [ebp - 0x294], 0
and dword [ebp - 0x224], 0
push 0x6b
pop eax
mov word [ebp - 0x7c], ax
push 0x65
pop eax
mov word [ebp - 0x7a], ax
push 0x72
pop eax
mov word [ebp - 0x78], ax
push 0x6e
pop eax
mov word [ebp - 0x76], ax
push 0x65
pop eax
mov word [ebp - 0x74], ax
push 0x6c
pop eax
mov word [ebp - 0x72], ax
push 0x33
pop eax
mov word [ebp - 0x70], ax
push 0x32
pop eax
mov word [ebp - 0x6e], ax
push 0x2e
pop eax
mov word [ebp - 0x6c], ax
push 0x64
pop eax
mov word [ebp - 0x6a], ax
push 0x6c
pop eax
mov word [ebp - 0x68], ax
push 0x6c
pop eax
mov word [ebp - 0x66], ax
xor eax, eax
mov word [ebp - 0x64], ax
xor eax, eax
lea edi, [ebp - 0x62]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
and dword [ebp - 0x264], 0
and dword [ebp - 0x80], 0
and dword [ebp - 0x1d0], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x2a4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x1ec], eax
jmp 0x40169a
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax]
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x1ec]
cmp ecx, dword [eax + 4]
je 0x401914
mov eax, dword [ebp - 0x1ec]
sub eax, 8
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp - 0x1d0]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x1d0]
movzx eax, word [eax + 0x2c]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0x30
jle 0x4016e8
jmp 0x40168c
lea eax, [ebp - 0x7c]
test eax, eax
je 0x4018df
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0x1cc], eax
and dword [ebp - 0x1b8], 0
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax]
test eax, eax
je 0x401742
mov eax, dword [ebp - 0x1b8]
inc eax
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x17c]
inc eax
inc eax
mov dword [ebp - 0x17c], eax
jmp 0x401718
mov eax, dword [ebp - 0x184]
movzx eax, word [eax]
test eax, eax
je 0x40176c
mov eax, dword [ebp - 0x1b8]
dec eax
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x184]
inc eax
inc eax
mov dword [ebp - 0x184], eax
jmp 0x401742
cmp dword [ebp - 0x1b8], 0
jle 0x401786
mov eax, dword [ebp - 0x1cc]
mov dword [eax], 1
jmp 0x4018dd
cmp dword [ebp - 0x1b8], 0
jge 0x40179d
mov eax, dword [ebp - 0x1cc]
or dword [eax], 0xffffffff
jmp 0x4018dd
mov eax, dword [ebp - 0x1cc]
and dword [eax], 0
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax]
test eax, eax
je 0x4018dd
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax]
mov ecx, dword [ebp - 0x184]
movzx ecx, word [ecx]
cmp eax, ecx
jne 0x401805
mov eax, dword [ebp - 0x17c]
inc eax
inc eax
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x184]
inc eax
inc eax
mov dword [ebp - 0x184], eax
jmp 0x4017bb
mov eax, dword [ebp - 0x17c]
mov ax, word [eax]
mov word [ebp - 0x190], ax
mov eax, dword [ebp - 0x184]
mov ax, word [eax]
mov word [ebp - 0x194], ax
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax]
cmp eax, 0x61
jle 0x401852
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax]
cmp eax, 0x7a
jge 0x401852
movzx eax, word [ebp - 0x190]
sub eax, 0x20
mov word [ebp - 0x190], ax
mov eax, dword [ebp - 0x184]
movzx eax, word [eax]
cmp eax, 0x61
jle 0x40187f
mov eax, dword [ebp - 0x184]
movzx eax, word [eax]
cmp eax, 0x7a
jge 0x40187f
movzx eax, word [ebp - 0x194]
sub eax, 0x20
mov word [ebp - 0x194], ax
movzx eax, word [ebp - 0x190]
movzx ecx, word [ebp - 0x194]
cmp eax, ecx
je 0x4018bc
movzx eax, word [ebp - 0x190]
movzx ecx, word [ebp - 0x194]
cmp eax, ecx
jle 0x4018b1
mov eax, dword [ebp - 0x1cc]
mov dword [eax], 1
jmp 0x4018ba
mov eax, dword [ebp - 0x1cc]
or dword [eax], 0xffffffff
jmp 0x4018dd
mov eax, dword [ebp - 0x17c]
inc eax
inc eax
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x184]
inc eax
inc eax
mov dword [ebp - 0x184], eax
jmp 0x4017bb
jmp 0x4018e3
and dword [ebp - 0x80], 0
cmp dword [ebp - 0x80], 0
jne 0x4018fa
mov eax, dword [ebp - 0x1d0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x264], eax
jmp 0x401914
mov eax, dword [ebp - 0x1d0]
cmp dword [eax + 0x18], 0
jne 0x40190f
and dword [ebp - 0x1b0], 0
jmp 0x401920
jmp 0x40168c
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 0
jne 0x401930
xor eax, eax
jmp 0x402686
mov dword [ebp - 0x294], 0x40138b
and dword [ebp - 0x16c], 0
mov byte [ebp - 0x18], 0x47
mov byte [ebp - 0x17], 0x65
mov byte [ebp - 0x16], 0x74
mov byte [ebp - 0x15], 0x50
mov byte [ebp - 0x14], 0x72
mov byte [ebp - 0x13], 0x6f
mov byte [ebp - 0x12], 0x63
mov byte [ebp - 0x11], 0x41
mov byte [ebp - 0x10], 0x64
mov byte [ebp - 0xf], 0x64
mov byte [ebp - 0xe], 0x72
mov byte [ebp - 0xd], 0x65
mov byte [ebp - 0xc], 0x73
mov byte [ebp - 0xb], 0x73
mov byte [ebp - 0xa], 0
xor eax, eax
mov dword [ebp - 9], eax
mov byte [ebp - 5], al
mov byte [ebp - 0x54], 0x4c
mov byte [ebp - 0x53], 0x6f
mov byte [ebp - 0x52], 0x61
mov byte [ebp - 0x51], 0x64
mov byte [ebp - 0x50], 0x4c
mov byte [ebp - 0x4f], 0x69
mov byte [ebp - 0x4e], 0x62
mov byte [ebp - 0x4d], 0x72
mov byte [ebp - 0x4c], 0x61
mov byte [ebp - 0x4b], 0x72
mov byte [ebp - 0x4a], 0x79
mov byte [ebp - 0x49], 0x41
mov byte [ebp - 0x48], 0
xor eax, eax
lea edi, [ebp - 0x47]
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x40], 0x56
mov byte [ebp - 0x3f], 0x69
mov byte [ebp - 0x3e], 0x72
mov byte [ebp - 0x3d], 0x74
mov byte [ebp - 0x3c], 0x75
mov byte [ebp - 0x3b], 0x61
mov byte [ebp - 0x3a], 0x6c
mov byte [ebp - 0x39], 0x41
mov byte [ebp - 0x38], 0x6c
mov byte [ebp - 0x37], 0x6c
mov byte [ebp - 0x36], 0x6f
mov byte [ebp - 0x35], 0x63
mov byte [ebp - 0x34], 0
xor eax, eax
lea edi, [ebp - 0x33]
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x2c], 0x56
mov byte [ebp - 0x2b], 0x69
mov byte [ebp - 0x2a], 0x72
mov byte [ebp - 0x29], 0x74
mov byte [ebp - 0x28], 0x75
mov byte [ebp - 0x27], 0x61
mov byte [ebp - 0x26], 0x6c
mov byte [ebp - 0x25], 0x50
mov byte [ebp - 0x24], 0x72
mov byte [ebp - 0x23], 0x6f
mov byte [ebp - 0x22], 0x74
mov byte [ebp - 0x21], 0x65
mov byte [ebp - 0x20], 0x63
mov byte [ebp - 0x1f], 0x74
mov byte [ebp - 0x1e], 0
xor eax, eax
mov dword [ebp - 0x1d], eax
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x19c], eax
and dword [ebp - 0x1d8], 0
and dword [ebp - 0x258], 0
and dword [ebp - 0x2e4], 0
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x260]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x1f4], ecx
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x19c]
add ecx, dword [eax + 0x50]
mov dword [ebp - 0x258], ecx
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x19c]
add edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1c0], edx
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [ecx + eax + 0x7c]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x19c]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x1f8], ecx
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x19c]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x2a8], ecx
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x19c]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x2ac], ecx
and dword [ebp - 0x1ac], 0
jmp 0x401b30
mov eax, dword [ebp - 0x1ac]
inc eax
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x1ac]
cmp eax, dword [ebp - 0x2a0]
jae 0x401cf2
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x19c]
lea eax, [ecx + eax + 0xdc]
cmp dword [ebp - 0x258], eax
ja 0x401b68
jmp 0x401b23
lea eax, [ebp - 0x18]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x19c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x1a4], edx
lea eax, [ebp - 0x88]
mov dword [ebp - 0x1d4], eax
and dword [ebp - 0x1bc], 0
mov eax, dword [ebp - 0x198]
movsx eax, byte [eax]
test eax, eax
je 0x401bc8
mov eax, dword [ebp - 0x1bc]
inc eax
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
jmp 0x401b9f
mov eax, dword [ebp - 0x1a4]
movsx eax, byte [eax]
test eax, eax
je 0x401bf1
mov eax, dword [ebp - 0x1bc]
dec eax
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x1a4]
inc eax
mov dword [ebp - 0x1a4], eax
jmp 0x401bc8
cmp dword [ebp - 0x1bc], 0
jle 0x401c0b
mov eax, dword [ebp - 0x1d4]
mov dword [eax], 1
jmp 0x401cbd
cmp dword [ebp - 0x1bc], 0
jge 0x401c22
mov eax, dword [ebp - 0x1d4]
or dword [eax], 0xffffffff
jmp 0x401cbd
mov eax, dword [ebp - 0x1d4]
and dword [eax], 0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x19c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0x198]
movsx eax, byte [eax]
test eax, eax
je 0x401cbd
mov eax, dword [ebp - 0x198]
movsx eax, byte [eax]
mov ecx, dword [ebp - 0x1a4]
movsx ecx, byte [ecx]
cmp eax, ecx
jle 0x401c80
mov eax, dword [ebp - 0x1d4]
mov dword [eax], 1
jmp 0x401cbd
mov eax, dword [ebp - 0x198]
movsx eax, byte [eax]
mov ecx, dword [ebp - 0x1a4]
movsx ecx, byte [ecx]
cmp eax, ecx
jge 0x401ca1
mov eax, dword [ebp - 0x1d4]
or dword [eax], 0xffffffff
jmp 0x401cbd
mov eax, dword [ebp - 0x198]
inc eax
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x1a4]
inc eax
mov dword [ebp - 0x1a4], eax
jmp 0x401c4f
cmp dword [ebp - 0x88], 0
jne 0x401ced
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x2a8]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x2ac]
mov edx, dword [ebp - 0x19c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x1d8], edx
jmp 0x401cf2
jmp 0x401b23
mov eax, dword [ebp - 0x1d8]
cmp eax, dword [ebp - 0x1c0]
jb 0x401d1b
mov eax, dword [ebp - 0x1c0]
add eax, dword [ebp - 0x2b0]
cmp dword [ebp - 0x1d8], eax
jae 0x401d1b
and dword [ebp - 0x1d8], 0
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
jne 0x401d37
xor eax, eax
jmp 0x402686
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x1e0], eax
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x1b0]
call dword [ebp - 0x1e0]
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x1b0]
call dword [ebp - 0x1e0]
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x1b0]
call dword [ebp - 0x1e0]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x1b4]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x178]
lea eax, [ecx + eax + 0x18]
mov dword [ebp - 0x170], eax
and dword [ebp - 0x188], 0
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x188], eax
jge 0x401ec5
imul eax, dword [ebp - 0x188], 0x28
mov ecx, dword [ebp - 0x170]
cmp dword [ecx + eax + 0xc], 0
jne 0x401e09
mov eax, dword [ebp - 0x188]
inc eax
mov dword [ebp - 0x188], eax
jmp 0x401dd0
imul eax, dword [ebp - 0x188], 0x28
imul ecx, dword [ebp - 0x188], 0x28
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + eax + 0xc]
mov edx, dword [ebp - 0x170]
add eax, dword [edx + ecx + 0x10]
cmp dword [ebp - 0x180], eax
jbe 0x401e41
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x254], eax
jmp 0x401e69
imul eax, dword [ebp - 0x188], 0x28
imul ecx, dword [ebp - 0x188], 0x28
mov edx, dword [ebp - 0x170]
mov eax, dword [edx + eax + 0xc]
mov edx, dword [ebp - 0x170]
add eax, dword [edx + ecx + 0x10]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x188]
inc eax
mov ecx, dword [ebp - 0x178]
movzx ecx, word [ecx + 6]
cmp eax, ecx
jne 0x401eb3
imul eax, dword [ebp - 0x188], 0x28
mov ecx, dword [ebp - 0x170]
cmp dword [ecx + eax + 0x10], 0
jne 0x401eb3
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x180]
add ecx, dword [eax + 0x38]
mov dword [ebp - 0x180], ecx
mov eax, dword [ebp - 0x188]
inc eax
mov dword [ebp - 0x188], eax
jmp 0x401dd0
cmp dword [ebp - 0x180], 0
je 0x401ef0
mov eax, dword [ebp - 0x180]
add eax, 0xfff
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x180]
and eax, 0xfffff000
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
jne 0x401f00
xor eax, eax
jmp 0x402686
push 4
push 0x1000
push dword [ebp - 0x180]
push 0
call dword [ebp - 0x25c]
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
jne 0x401f2b
xor eax, eax
jmp 0x402686
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x1b4]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x278]
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x2e8], eax
mov eax, dword [ebp - 0x270]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x1b4]
lea eax, [ecx + eax + 0x18]
mov dword [ebp - 0x27c], eax
push 0x38
pop ecx
mov esi, dword [ebp - 0x27c]
lea edi, [ebp - 0x168]
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x124]
cmp eax, 2
je 0x402006
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push str.Debug_Win_Output
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x280], eax
push 0x4000
push dword [ebp - 0x280]
call fcn.004063db
pop ecx
pop ecx
mov dword [ebp - 0x284], eax
push 0x414bf0
push dword [ebp - 0x284]
call fcn.00405ded
pop ecx
pop ecx
mov dword [ebp - 0x210], eax
push 0
push 4
push 0
push dword [ebp - 0x210]
call fcn.00405f16
add esp, 0x10
mov eax, dword [ebp - 0x210]
mov esi, dword [eax]
push 1
call fcn.00405937
pop ecx
mov dword [eax], esi
and dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x1a0], eax
jge 0x402127
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
cmp dword [ecx + eax + 0xc], 0
je 0x402115
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x174]
add edx, dword [ecx + eax + 0xc]
mov dword [ebp - 0x214], edx
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
cmp dword [ecx + eax + 0x10], 0
je 0x402115
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x1b4]
add edx, dword [ecx + eax + 0x14]
mov dword [ebp - 0x288], edx
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
mov eax, dword [ecx + eax + 0x10]
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x200], eax
cmp dword [ebp - 0x204], 0
jbe 0x4020fe
mov eax, dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0x200]
mov cl, byte [ecx]
mov byte [eax], cl
mov eax, dword [ebp - 0x1fc]
inc eax
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x200]
inc eax
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x204]
dec eax
mov dword [ebp - 0x204], eax
jmp 0x4020bc
imul eax, dword [ebp - 0x1a0], 0x28
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x214]
mov dword [ecx + eax + 8], edx
mov eax, dword [ebp - 0x1a0]
inc eax
mov dword [ebp - 0x1a0], eax
jmp 0x40200d
push 8
pop eax
imul eax, eax, 5
mov ecx, dword [ebp - 0x178]
cmp dword [ecx + eax + 0x78], 0
jne 0x402151
push 8
pop eax
imul eax, eax, 5
mov ecx, dword [ebp - 0x178]
cmp dword [ecx + eax + 0x7c], 0
je 0x40227b
push 8
pop eax
imul eax, eax, 5
mov ecx, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
add edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0x18c]
cmp eax, dword [ebp - 0x174]
jbe 0x40227b
mov eax, dword [ebp - 0x174]
add eax, dword [ebp - 0x180]
cmp dword [ebp - 0x18c], eax
jae 0x40227b
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0
je 0x40227b
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 4], 0
je 0x40227b
mov eax, dword [ebp - 0x18c]
add eax, 8
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 4]
sub eax, 8
shr eax, 1
mov dword [ebp - 0x28c], eax
and dword [ebp - 0x1dc], 0
jmp 0x4021ef
mov eax, dword [ebp - 0x1dc]
inc eax
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x1dc]
cmp eax, dword [ebp - 0x28c]
jge 0x402261
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x218]
movzx eax, word [ecx + eax*2]
sar eax, 0xc
cmp eax, 3
jne 0x40225f
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax]
mov eax, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x218]
movzx eax, word [edx + eax*2]
and eax, 0xfff
add ecx, eax
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
sub ecx, dword [eax + 0x34]
mov eax, dword [ebp - 0x21c]
add ecx, dword [eax]
mov eax, dword [ebp - 0x21c]
mov dword [eax], ecx
jmp 0x4021e2
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
add ecx, dword [eax + 4]
mov dword [ebp - 0x18c], ecx
jmp 0x40216d
mov eax, dword [ebp - 0x178]
add eax, 0x80
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x208]
cmp dword [eax + 4], 0
je 0x40243d
mov eax, dword [ebp - 0x208]
cmp dword [eax], 0
je 0x40243d
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax]
mov dword [ebp - 0x1a8], ecx
jmp 0x4022d0
mov eax, dword [ebp - 0x1a8]
add eax, 0x14
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a8]
cmp dword [eax + 0xc], 0
je 0x40243d
and dword [ebp - 0x1c4], 0
and dword [ebp - 0x1e4], 0
and dword [ebp - 0x220], 0
and dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x220], ecx
push dword [ebp - 0x220]
call dword [ebp - 0x224]
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 0
jne 0x402333
xor eax, eax
jmp 0x402686
mov eax, dword [ebp - 0x1a8]
cmp dword [eax], 0
je 0x402354
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax]
mov dword [ebp - 0x228], ecx
jmp 0x402369
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax + 0x10]
mov dword [ebp - 0x228], ecx
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax + 0x10]
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp - 0x1e4]
cmp dword [eax], 0
je 0x402438
and dword [ebp - 0x234], 0
and dword [ebp - 0x230], 0
mov eax, dword [ebp - 0x1c4]
mov eax, dword [eax]
and eax, 0x80000000
je 0x4023cb
mov eax, dword [ebp - 0x1c4]
mov eax, dword [eax]
and eax, 0xffff
mov dword [ebp - 0x22c], eax
jmp 0x4023e3
mov eax, dword [ebp - 0x1c4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x174]
lea eax, [ecx + eax + 2]
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x230], eax
push dword [ebp - 0x230]
push dword [ebp - 0x20c]
call dword [ebp - 0x1e0]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x1e4]
mov ecx, dword [ebp - 0x234]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c4]
add eax, 4
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x1e4]
add eax, 4
mov dword [ebp - 0x1e4], eax
jmp 0x40238a
jmp 0x4022c1
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
and dword [ebp - 0x1c8], 0
jmp 0x40245e
mov eax, dword [ebp - 0x1c8]
inc eax
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x1c8], eax
jge 0x402634
mov dword [ebp - 0x2e0], 1
mov dword [ebp - 0x2dc], 8
mov dword [ebp - 0x2d8], 2
mov dword [ebp - 0x2d4], 4
mov dword [ebp - 0x2d0], 0x10
mov dword [ebp - 0x2cc], 0x80
mov dword [ebp - 0x2c8], 0x20
mov dword [ebp - 0x2c4], 0x40
and dword [ebp - 0x1f0], 0
and dword [ebp - 0x84], 0
and dword [ebp - 0x238], 0
and dword [ebp - 0x23c], 0
and dword [ebp - 0x240], 0
and dword [ebp - 0x244], 0
imul eax, dword [ebp - 0x1c8], 0x28
mov ecx, dword [ebp - 0x170]
mov eax, dword [ecx + eax + 8]
xor ecx, ecx
or eax, dword [ebp - 0x2b8]
or ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], ecx
imul eax, dword [ebp - 0x1c8], 0x28
mov ecx, dword [ebp - 0x170]
mov eax, dword [ecx + eax + 0x10]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0
jne 0x40253e
jmp 0x402451
imul eax, dword [ebp - 0x1c8], 0x28
mov ecx, dword [ebp - 0x170]
mov eax, dword [ecx + eax + 0x24]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e8]
and eax, 0x2000000
je 0x402567
jmp 0x402451
mov eax, dword [ebp - 0x1e8]
and eax, 0x20000000
je 0x40257e
mov dword [ebp - 0x238], 1
mov eax, dword [ebp - 0x1e8]
and eax, 0x40000000
je 0x402595
mov dword [ebp - 0x23c], 1
mov eax, dword [ebp - 0x1e8]
and eax, 0x80000000
je 0x4025ac
mov dword [ebp - 0x240], 1
mov eax, dword [ebp - 0x1e8]
and eax, 0x4000000
je 0x4025c3
mov dword [ebp - 0x244], 1
mov eax, dword [ebp - 0x238]
shl eax, 4
lea eax, [ebp + eax - 0x2e0]
mov ecx, dword [ebp - 0x23c]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x240]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x244], 0
je 0x402605
mov eax, dword [ebp - 0x1f0]
or eax, 0x200
mov dword [ebp - 0x1f0], eax
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x1f0]
push dword [ebp - 0x248]
push dword [ebp - 0x2c0]
call dword [ebp - 0x24c]
movzx eax, al
test eax, eax
jne 0x40262f
xor eax, eax
jmp 0x402686
jmp 0x402451
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
add ecx, dword [eax + 0x28]
mov dword [ebp - 0x250], ecx
movzx eax, byte [ebp + 0xc]
test eax, eax
jne 0x402665
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x29c], eax
call dword [ebp - 0x29c]
jmp 0x402684
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x298], eax
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [ebp - 0x298]
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00402fc9
leave
ret 8