Function at 0x1002dfc9
Capabilities:
Allocate thread local storage
Check os version
Connect pipe
Create process on windows
Enumerate files on windows
Extract resource via kernel32 functions
Get common file path
Get disk information
Get file attributes
Get file system object information
Identify system language via api
Log keystrokes
Parse pe header
Read .ini file

Disassembly:
mov eax, 0x100849e2
call fcn.10083020
mov eax, 0x1594
call fcn.1007f7d0
push ebx
push esi
push edi
push 3
pop ebx
mov dword [ebp - 0x58], ecx
lea ecx, [ebp - 0x5ec]
mov dword [ebp - 0x34], 0x1097
mov dword [ebp - 0x30], 0x1ee4cff1
push ebx
mov byte [ebp - 0x5d], dl
call fcn.10016405
xor eax, eax
xor edi, edi
mov dword [ebp - 4], eax
inc edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x2c], 0x8f949145
mov dword [ebp - 0x3c], 0xe133
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0x6e7
push 0xffffffffffffffff
mov dword [ebp - 0x3c], 0xffff
mov dword [ebp - 0x10], eax
pop esi
jmp 0x1002e04b
push dword [ebp - 0x10]
lea ecx, [ebp - 0x5ec]
call fcn.1001646b
mov dword [eax], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002e038
mov eax, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setg dl
xor ebx, ebx
cmp edx, 0xc570
setne bl
xor ecx, ecx
cmp ebx, eax
setg cl
xor ebx, ebx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x5ec]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x34]
push ebx
call fcn.1001646b
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x34]
cmp esi, eax
sete cl
xor edx, edx
lea eax, [ecx + 0x57673425]
cmp eax, 0xb2fa
mov eax, dword [ebp - 0x34]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, dword [ebp - 0x20]
jne 0x1002e0c3
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x20]
test eax, eax
je 0x1002e0ee
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002e0f0
mov ecx, edi
jmp 0x1002e0f2
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
jmp 0x1002e265
push 3
pop ebx
mov dword [ebp - 0x38], 0xcf58a412
lea ecx, [ebp - 0xaa8]
push ebx
call fcn.10016405
xor eax, eax
lea ecx, [ebp - 0x10d4]
inc eax
push eax
mov byte [ebp - 4], al
call fcn.10016405
mov byte [ebp - 4], 2
mov dword [ebp - 0x3c], 0xa200
mov dword [ebp - 0x14], 0
jmp 0x1002e150
push dword [ebp - 0x14]
lea ecx, [ebp - 0xaa8]
call fcn.1001646b
mov dword [eax], 0xa26b1312
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002e139
mov dword [ebp - 0x14], 0
jmp 0x1002e174
push dword [ebp - 0x14]
lea ecx, [ebp - 0x10d4]
call fcn.1001646b
xor esi, esi
inc esi
mov dword [eax], esi
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002e15e
cmp dword [ebp - 0x34], 0
jne 0x1002e1b2
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x5ec]
push 2
call fcn.1001646b
mov ecx, dword [ebp - 0x38]
imul ecx, dword [eax]
mov eax, dword [ebp - 0x38]
add eax, ecx
je 0x1002e1aa
cmp dword [ebp - 0x38], 0
je 0x1002e1aa
xor eax, eax
inc eax
jmp 0x1002e1ac
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push 2
lea ecx, [ebp - 0x5ec]
call fcn.1001646b
mov eax, dword [ebp - 0x38]
xor ebx, ebx
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
lea ecx, [ebp - 0xaa8]
setl bl
xor eax, eax
inc eax
push eax
call fcn.1001646b
xor edx, edx
mov dword [eax], ebx
or eax, 0xffffffff
cmp ebx, eax
mov eax, dword [ebp - 0x38]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0xfffd
ja 0x1002e20d
cmp dword [ebp - 0x38], eax
je 0x1002e20d
xor esi, esi
lea edi, [esi + 1]
jmp 0x1002e20f
mov edi, eax
push eax
lea ecx, [ebp - 0x5ec]
call fcn.1001646b
mov ecx, dword [ebp - 0x38]
mov esi, eax
xor eax, eax
xor edx, edx
inc eax
cmp edi, eax
sete dl
xor eax, eax
cmp ecx, edx
lea ecx, [ebp - 0x10d4]
setl al
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
sub eax, 0xf29a
neg eax
sbb eax, eax
inc eax
neg eax
mov dword [esi], eax
dec dword [ebp - 0x40]
call fcn.10016466
lea ecx, [ebp - 0xaa8]
mov byte [ebp - 4], 0
call fcn.10016466
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xfffffff7
jl 0x1002e0fd
or edi, 0xffffffff
lea ecx, [ebp - 0x5ec]
mov dword [ebp - 4], edi
call fcn.10016466
push 3
pop ebx
mov dword [ebp - 0x34], 0x1097
lea ecx, [ebp - 0x634]
mov dword [ebp - 0x30], 0x1ee4cff1
push ebx
call fcn.10016405
mov dword [ebp - 4], ebx
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x2c], 0x8f949145
mov dword [ebp - 0x3c], 0xe133
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0x6e7
mov dword [ebp - 0x3c], 0xffff
mov dword [ebp - 0x10], eax
jmp 0x1002e2e2
push dword [ebp - 0x10]
lea ecx, [ebp - 0x634]
call fcn.1001646b
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002e2cf
mov eax, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setg dl
xor ebx, ebx
cmp edx, 0xc570
setne bl
xor ecx, ecx
cmp ebx, eax
setg cl
xor ebx, ebx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x634]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x34]
push ebx
call fcn.1001646b
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x34]
cmp esi, eax
sete cl
xor edx, edx
lea eax, [ecx + 0x57673425]
cmp eax, 0xb2fa
mov eax, dword [ebp - 0x34]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, dword [ebp - 0x20]
jne 0x1002e35a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x20]
test eax, eax
je 0x1002e388
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002e38a
xor esi, esi
lea ecx, [esi + 1]
jmp 0x1002e38c
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xfffffff7
push 3
pop ebx
jge 0x1002e513
mov dword [ebp - 0x38], 0xcf58a412
lea ecx, [ebp - 0xcac]
push ebx
call fcn.10016405
xor eax, eax
mov byte [ebp - 4], 4
inc eax
lea ecx, [ebp - 0xf44]
push eax
call fcn.10016405
mov byte [ebp - 4], 5
mov dword [ebp - 0x3c], 0xa200
mov dword [ebp - 0x14], 0
jmp 0x1002e3f0
push dword [ebp - 0x14]
lea ecx, [ebp - 0xcac]
call fcn.1001646b
mov dword [eax], 0xa26b1312
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002e3d9
mov dword [ebp - 0x14], 0
jmp 0x1002e414
push dword [ebp - 0x14]
lea ecx, [ebp - 0xf44]
call fcn.1001646b
xor esi, esi
inc esi
mov dword [eax], esi
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002e3fe
cmp dword [ebp - 0x34], 0
jne 0x1002e452
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x634]
push 2
call fcn.1001646b
mov ecx, dword [ebp - 0x38]
imul ecx, dword [eax]
mov eax, dword [ebp - 0x38]
add eax, ecx
je 0x1002e44a
cmp dword [ebp - 0x38], 0
je 0x1002e44a
xor eax, eax
inc eax
jmp 0x1002e44c
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push 2
lea ecx, [ebp - 0x634]
call fcn.1001646b
mov eax, dword [ebp - 0x38]
xor ebx, ebx
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
lea ecx, [ebp - 0xcac]
setl bl
xor eax, eax
inc eax
push eax
call fcn.1001646b
xor edx, edx
cmp ebx, edi
setle dl
xor ecx, ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x38]
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0xfffd
ja 0x1002e4aa
cmp dword [ebp - 0x38], eax
je 0x1002e4aa
xor esi, esi
lea edi, [esi + 1]
jmp 0x1002e4ac
mov edi, eax
push eax
lea ecx, [ebp - 0x634]
call fcn.1001646b
mov ecx, dword [ebp - 0x38]
mov esi, eax
xor eax, eax
xor edx, edx
inc eax
cmp edi, eax
sete dl
xor eax, eax
cmp ecx, edx
lea ecx, [ebp - 0xf44]
setl al
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
sub eax, 0xf29a
neg eax
sbb eax, eax
inc eax
neg eax
mov dword [esi], eax
dec dword [ebp - 0x40]
call fcn.10016466
push 3
pop ebx
lea ecx, [ebp - 0xcac]
mov byte [ebp - 4], bl
call fcn.10016466
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xfffffff7
push 0xffffffffffffffff
pop edi
jl 0x1002e39f
or edi, edi
lea ecx, [ebp - 0x634]
mov dword [ebp - 4], edi
call fcn.10016466
mov dword [ebp - 0x38], 0x1097
lea ecx, [ebp - 0xab4]
mov dword [ebp - 0x34], 0xa1836ccb
mov dword [ebp - 0x1c], 0xdb856137
mov dword [ebp - 0x2c], 0
push ebx
call fcn.10016405
mov dword [ebp - 4], 6
mov dword [ebp - 0x14], 0
jmp 0x1002e56a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x11d8], 0xdd1edb6b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1002e559
xor esi, esi
mov dword [ebp - 0x14], 0
inc esi
cmp dword [ebp - 0x14], ebx
jge 0x1002e594
push dword [ebp - 0x14]
lea ecx, [ebp - 0xab4]
call fcn.1001646b
mov dword [eax], esi
inc dword [ebp - 0x14]
jmp 0x1002e57a
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
mov edx, dword [ebp - 0x34]
setg cl
xor eax, eax
cmp ecx, esi
mov ecx, 0xfc2da8af
setle al
cmp ecx, eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x34]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x34]
setne bl
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x11d4], 0
je 0x1002e61c
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x11cc], eax
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], 0xcc7
jl 0x1002e61c
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x1002e61e
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, 0xb171c250
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x70b1b9b9
mov eax, dword [ebp - 0x34]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x34]
setg dl
xor ecx, ecx
add edx, 6
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, dword [ebp - 0x34]
jge 0x1002e668
cmp dword [ebp - 0x11d4], eax
jne 0x1002e668
mov esi, eax
push eax
lea ecx, [ebp - 0xab4]
call fcn.1001646b
lea ecx, [ebp - 0xab4]
mov dword [ebp - 4], edi
mov dword [eax], esi
call fcn.10016466
mov dword [ebp - 0x30], 0x1ee4cff1
lea ecx, [ebp - 0xdb4]
push 2
call fcn.10016405
mov dword [ebp - 4], 7
xor eax, eax
inc eax
mov ecx, 0xfff7
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], 0x3292c5eb
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jge 0x1002e6dd
push dword [ebp - 0x14]
lea ecx, [ebp - 0xdb4]
call fcn.1001646b
mov dword [eax], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002e6c1
xor eax, eax
inc eax
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], eax
jge 0x1002e702
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7bc], 0
xor eax, eax
inc dword [ebp - 0x14]
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002e6e9
mov dword [ebp - 0x10], 0
push 3
pop ebx
cmp dword [ebp - 0x10], eax
jg 0x1002e7bf
jmp 0x1002e71a
xor eax, eax
inc eax
mov dword [ebp - 0x3c], 0x1e4f1f13
mov dword [ebp - 0x3c], 0xe66c619a
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], ebx
jge 0x1002e74d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1508], 0x4df6f978
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002e734
xor eax, eax
inc eax
mov dword [ebp - 0x14], 0
jmp 0x1002e769
mov eax, dword [ebp - 0x14]
xor esi, esi
inc esi
mov dword [ebp + eax*4 - 0xfa0], esi
xor eax, eax
inc dword [ebp - 0x14]
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002e756
mov eax, dword [ebp - 0x4c]
dec dword [ebp - 0x4c]
cmp eax, 0x278e
jle 0x1002e782
xor eax, eax
lea esi, [eax + 1]
jmp 0x1002e784
xor esi, esi
push dword [ebp - 0x10]
lea ecx, [ebp - 0xdb4]
call fcn.1001646b
xor ecx, ecx
cmp esi, 0x161ab6ec
setne cl
imul ecx, ecx, 0xffff
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
inc eax
mov dword [ebp - 0x7bc], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x1002e717
lea ecx, [ebp - 0xdb4]
mov dword [ebp - 4], edi
call fcn.10016466
push ebx
lea ecx, [ebp - 0x604]
call fcn.10016405
push 8
pop eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x34], 0xfffffffb
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1002e7fe
push 0x1105
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xfffffff6
jle 0x1002ea16
xor eax, eax
lea ecx, [ebp - 0x3b0]
inc eax
push eax
call fcn.10016405
mov byte [ebp - 4], 9
xor eax, eax
mov dword [ebp - 0x14], 0xd03248c6
xor esi, esi
mov dword [ebp - 0x20], edi
inc esi
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x40], 0x352601c8
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x1002e86b
push dword [ebp - 0x10]
lea ecx, [ebp - 0x3b0]
call fcn.1001646b
mov dword [eax], 0xfffffffb
xor eax, eax
inc dword [ebp - 0x10]
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002e84a
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jg 0x1002e9f5
xor eax, eax
lea ecx, [ebp - 0x95c]
inc eax
push eax
call fcn.10016405
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x10], 0
jmp 0x1002e8aa
push dword [ebp - 0x10]
lea ecx, [ebp - 0x95c]
call fcn.1001646b
mov dword [eax], 0x17f4039e
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002e893
push dword [ebp - 0x14]
lea ecx, [ebp - 0x3b0]
call fcn.1001646b
push 0
lea ecx, [ebp - 0x3b0]
call fcn.1001646b
mov ecx, dword [ebp - 0x34]
xor ebx, ebx
push dword [ebp - 0x14]
cmp dword [eax], ecx
lea ecx, [ebp - 0x3b0]
sete bl
call fcn.1001646b
xor ecx, ecx
cmp dword [eax], ebx
mov eax, dword [ebp - 0x34]
setle cl
xor edx, edx
cmp ecx, 0x7fa3dfad
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, 0x1c5a
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x34]
je 0x1002e91e
cmp dword [ebp - 0x34], 0
je 0x1002e91e
xor eax, eax
lea ecx, [eax + 1]
jmp 0x1002e920
xor ecx, ecx
mov eax, dword [ebp - 0x14]
add eax, ecx
lea ecx, [ebp - 0x95c]
cmp eax, 8
push 0
sbb esi, esi
neg esi
call fcn.1001646b
mov dword [eax], esi
mov eax, dword [ebp - 0x34]
imul eax, esi
neg eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jg 0x1002e9d9
push dword [ebp - 0x20]
lea ecx, [ebp - 0x3b0]
call fcn.1001646b
xor ebx, ebx
cmp dword [eax], ebx
jne 0x1002e974
push ebx
lea ecx, [ebp - 0x3b0]
call fcn.1001646b
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x3b0]
mov eax, dword [ebp - 0x34]
push dword [ebp - 0x20]
call fcn.1001646b
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x95c]
mov eax, dword [ebp - 0x34]
xor eax, eax
inc eax
mov dword [ebp - 0x40], eax
push ebx
call fcn.1001646b
mov ecx, dword [ebp - 0x40]
xor edx, edx
cmp ecx, 0xfffffffb
mov esi, eax
setge dl
sub edx, 0x53d9
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x20f620a3
setg cl
xor eax, eax
cmp ecx, dword [esi]
setge al
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1002e954
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 9
call fcn.10016466
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jle 0x1002e877
push 8
pop eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], al
call fcn.10016466
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xfffffff6
jg 0x1002e80b
push 3
pop ebx
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x2c], 0x8f949145
mov dword [ebp - 0x3c], 0xe133
mov dword [ebp - 0x30], 0x653d
mov dword [ebp - 0x24], 0xb3e713e1
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setg cl
xor edx, edx
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, 0x591b
setne al
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setg dl
sub eax, edx
cmp eax, dword [ebp - 0x30]
je 0x1002ea83
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov esi, 0xac39b398
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x16b5
setg cl
imul ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x30]
jg 0x1002eadb
mov dword [ebp - 0x2c], 0xd7feae21
xor eax, eax
mov dword [ebp - 0x24], 0x13
jmp 0x1002ead0
mov dword [ebp - 0x2c], 0xe80c6548
cmp dword [ebp - 0x24], eax
jne 0x1002ec16
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xb
jle 0x1002eabd
jmp 0x1002ec16
xor eax, eax
lea ecx, [ebp - 0x7a0]
inc eax
push eax
call fcn.10016405
push 4
lea ecx, [ebp - 0x974]
mov byte [ebp - 4], 0xb
call fcn.10016405
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x4c], 0x76e30f4a
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x2c], 0xfb6f8a3e
mov dword [ebp - 0x14], 0
jmp 0x1002eb30
push dword [ebp - 0x14]
lea ecx, [ebp - 0x7a0]
call fcn.1001646b
mov dword [eax], 0x131dda87
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002eb19
mov dword [ebp - 0x14], 0
jmp 0x1002eb4e
push dword [ebp - 0x14]
call fcn.1001646b
mov dword [eax], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
lea ecx, [ebp - 0x974]
jl 0x1002eb41
push 2
call fcn.1001646b
mov dword [eax], esi
cmp dword [ebp - 0x24], esi
jne 0x1002eb75
push 2
lea ecx, [ebp - 0x974]
call fcn.1001646b
mov dword [ebp - 0x4c], 7
xor edx, edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setle dl
xor eax, eax
cmp edx, dword [ebp - 0x24]
jg 0x1002eb99
cmp dword [ebp - 0x4c], eax
jne 0x1002eb99
mov esi, eax
jmp 0x1002eb9c
xor esi, esi
inc esi
push eax
lea ecx, [ebp - 0x7a0]
call fcn.1001646b
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x7a0]
xor ebx, ebx
push ebx
call fcn.1001646b
push ebx
lea ecx, [ebp - 0x7a0]
sub esi, dword [eax]
xor eax, eax
cmp esi, 0xb751
setle al
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
call fcn.1001646b
lea ecx, [ebp - 0x974]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
call fcn.10016466
push 8
pop eax
lea ecx, [ebp - 0x7a0]
mov byte [ebp - 4], al
call fcn.10016466
push 3
xor eax, eax
pop ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], 0x6e7
mov dword [ebp - 0x3c], 0xffff
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x1c], 0xf
jmp 0x1002ec5d
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], 0xfffffff6
jmp 0x1002ec54
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002ec51
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe2
jge 0x1002ec3f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x19
jge 0x1002ec33
push 4
lea ecx, [ebp - 0x124]
call fcn.10016405
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x117c]
mov dword [ebp - 0x10], 0x72159124
xor eax, eax
mov dword [ebp - 0x30], 0x238e486a
inc eax
mov dword [ebp - 0x34], 0x68cd546
mov dword [ebp - 0x3c], 0xfffffffd
mov dword [ebp - 0x40], 0x4593f6a0
mov dword [ebp - 0x3c], 0xfffffffe
mov dword [ebp - 0x3c], eax
push ebx
call fcn.10016405
mov byte [ebp - 4], 0xe
xor eax, eax
mov dword [ebp - 0x1c], 0x4912
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 4
jge 0x1002ece5
push dword [ebp - 0x30]
lea ecx, [ebp - 0x124]
call fcn.1001646b
and dword [eax], 0
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 4
jl 0x1002ecc9
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
jge 0x1002ed01
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0xacc], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x1002eced
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x1002ed1d
push dword [ebp - 0x30]
lea ecx, [ebp - 0x117c]
call fcn.1001646b
mov dword [eax], 0x5708880d
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x1002ed06
xor eax, eax
lea ecx, [ebp - 0x124]
inc eax
push eax
call fcn.1001646b
mov esi, eax
lea ecx, [ebp - 0x124]
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov esi, dword [esi]
lea ecx, [ebp - 0x124]
sub esi, dword [eax]
neg esi
sbb esi, esi
xor eax, eax
inc eax
inc esi
push eax
call fcn.1001646b
xor ecx, ecx
cmp esi, dword [eax]
setle cl
xor ebx, ebx
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x124]
push ebx
call fcn.1001646b
lea ecx, [ebp - 0x124]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
xor eax, eax
inc eax
push eax
call fcn.1001646b
xor ecx, ecx
cmp dword [eax], ebx
setne cl
xor eax, eax
inc eax
mov dword [ebp - 0x2c], ecx
push eax
lea ecx, [ebp - 0x124]
call fcn.1001646b
lea ecx, [ebp - 0x124]
cmp dword [eax], ebx
setne bl
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov ecx, dword [ebp - 0x2c]
xor edx, edx
add ecx, ebx
cmp dword [eax], ecx
lea ecx, [ebp - 0x124]
setle dl
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x124]
push 3
pop edi
push edi
call fcn.1001646b
xor eax, eax
lea ecx, [ebp - 0x124]
inc eax
push eax
call fcn.1001646b
xor eax, eax
lea ecx, [ebp - 0x124]
inc eax
push eax
call fcn.1001646b
xor eax, eax
push 0xfffffffffffffffa
pop ecx
cmp dword [ebp - 0x30], eax
je 0x1002ee58
mov dword [ebp - 0x3c], 0xfffffff6
or ebx, 0xffffffff
mov dword [ebp - 0x3c], 0x1fb9a31c
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], 0x1aedf47
mov dword [ebp - 0x10], eax
jmp 0x1002ee48
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xfb0], 0xfffffffe
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002ee37
inc dword [ebp - 0x24]
jmp 0x1002f043
mov dword [ebp - 0x4c], 6
mov dword [ebp - 0x40], 0xcf10aa6f
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 2
jg 0x1002f040
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x1002ee9c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x844], 0x46d8da56
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1002ee83
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jg 0x1002f031
xor eax, eax
mov dword [ebp - 0x48], 0xe8591f28
inc eax
mov dword [ebp - 0x2c], 0x54fcfb0f
push eax
lea ecx, [ebp - 0x98c]
call fcn.10016405
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x14], 0
jmp 0x1002eee4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x9f4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002eed3
mov dword [ebp - 0x14], 0
jmp 0x1002ef0a
push dword [ebp - 0x14]
lea ecx, [ebp - 0x98c]
call fcn.1001646b
mov dword [eax], 0x97c8
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002eef3
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x124]
inc eax
push eax
call fcn.1001646b
xor ebx, ebx
cmp dword [eax], ebx
jne 0x1002ef53
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x124]
call fcn.1001646b
mov ecx, dword [ebp - 0x4c]
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [ebp - 0x838]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
xor eax, eax
inc eax
mov dword [ebp - 0x9f0], eax
mov eax, dword [ebp - 0x838]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x83c]
mov eax, dword [ebp - 0x844]
mov eax, dword [ebp - 0x838]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x9f0], eax
jne 0x1002efa4
mov eax, dword [ebp - 0x34]
cmp dword [ebp + eax*4 - 0xacc], ebx
jne 0x1002efa4
xor ecx, ecx
jmp 0x1002efa9
xor eax, eax
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0xacc]
imul eax, ecx
xor ecx, ecx
cmp eax, 0xfffd
mov eax, dword [ebp - 0x34]
setne cl
mov dword [ebp + eax*4 - 0xacc], ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x838]
xor eax, eax
cmp dword [ebp - 0x48], eax
je 0x1002eff6
push eax
lea ecx, [ebp - 0x98c]
call fcn.1001646b
cmp dword [eax], ebx
je 0x1002eff4
xor eax, eax
lea esi, [eax + 1]
jmp 0x1002eff8
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x98c]
call fcn.1001646b
mov ecx, dword [ebp - 0x34]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x98c]
setl dl
add edx, dword [eax]
mov dword [ebp - 0x10], edx
mov byte [ebp - 4], 0xe
call fcn.10016466
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x1002eea9
xor eax, eax
mov dword [ebp - 0x2c], 5
inc dword [ebp - 0x34]
jmp 0x1002ee69
or ebx, 0xffffffff
lea ecx, [ebp - 0x117c]
call fcn.10016466
push 8
pop eax
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], al
call fcn.10016466
mov dword [ebp - 0x10], 0
jmp 0x1002f07b
push dword [ebp - 0x10]
lea ecx, [ebp - 0x604]
call fcn.1001646b
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002f068
mov eax, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setg dl
xor ebx, ebx
cmp edx, 0xc570
setne bl
xor ecx, ecx
cmp ebx, eax
setg cl
xor ebx, ebx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x604]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x38]
push ebx
call fcn.1001646b
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x38]
cmp esi, eax
sete cl
xor edx, edx
lea eax, [ecx + 0x57673425]
cmp eax, 0xb2fa
mov eax, dword [ebp - 0x38]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, dword [ebp - 0x20]
jne 0x1002f0f3
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x20]
test eax, eax
je 0x1002f121
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002f123
xor esi, esi
lea ecx, [esi + 1]
jmp 0x1002f125
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
jmp 0x1002f29b
mov dword [ebp - 0x34], 0xcf58a412
lea ecx, [ebp - 0xcc4]
push edi
call fcn.10016405
xor eax, eax
mov byte [ebp - 4], 0x10
inc eax
lea ecx, [ebp - 0xf5c]
push eax
call fcn.10016405
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x3c], 0xa200
mov dword [ebp - 0x14], 0
jmp 0x1002f181
push dword [ebp - 0x14]
lea ecx, [ebp - 0xcc4]
call fcn.1001646b
mov dword [eax], 0xa26b1312
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002f16a
mov dword [ebp - 0x14], 0
jmp 0x1002f1a5
push dword [ebp - 0x14]
lea ecx, [ebp - 0xf5c]
call fcn.1001646b
xor esi, esi
inc esi
mov dword [eax], esi
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002f18f
cmp dword [ebp - 0x38], 0
jne 0x1002f1e3
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x604]
push 2
call fcn.1001646b
mov ecx, dword [ebp - 0x34]
imul ecx, dword [eax]
mov eax, dword [ebp - 0x34]
add eax, ecx
je 0x1002f1db
cmp dword [ebp - 0x34], 0
je 0x1002f1db
xor eax, eax
inc eax
jmp 0x1002f1dd
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push 2
lea ecx, [ebp - 0x604]
call fcn.1001646b
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
lea ecx, [ebp - 0xcc4]
setl bl
xor eax, eax
inc eax
push eax
call fcn.1001646b
xor edx, edx
mov dword [eax], ebx
or eax, 0xffffffff
cmp ebx, eax
mov eax, dword [ebp - 0x34]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0xfffd
ja 0x1002f23e
cmp dword [ebp - 0x34], eax
je 0x1002f23e
xor esi, esi
lea edi, [esi + 1]
jmp 0x1002f240
mov edi, eax
push eax
lea ecx, [ebp - 0x604]
call fcn.1001646b
mov ecx, dword [ebp - 0x34]
mov esi, eax
xor eax, eax
xor edx, edx
inc eax
cmp edi, eax
sete dl
xor eax, eax
cmp ecx, edx
lea ecx, [ebp - 0xf5c]
setl al
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
sub eax, 0xf29a
neg eax
sbb eax, eax
inc eax
neg eax
mov dword [esi], eax
dec dword [ebp - 0x28]
call fcn.10016466
push 8
pop eax
lea ecx, [ebp - 0xcc4]
mov byte [ebp - 4], al
call fcn.10016466
dec dword [ebp - 0x30]
push 3
pop edi
cmp dword [ebp - 0x30], 0xfffffff7
jl 0x1002f130
or ebx, 0xffffffff
lea ecx, [ebp - 0x604]
mov dword [ebp - 4], ebx
call fcn.10016466
xor eax, eax
mov dword [ebp - 0x3c], 5
inc eax
lea ecx, [ebp - 0xae4]
push eax
call fcn.10016405
mov dword [ebp - 4], 0x12
mov dword [ebp - 0x14], 0
jmp 0x1002f2ed
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x13b8], 0x95031536
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002f2dc
mov dword [ebp - 0x14], 0
jmp 0x1002f313
push dword [ebp - 0x14]
lea ecx, [ebp - 0xae4]
call fcn.1001646b
mov dword [eax], 0xef906d8b
inc dword [ebp - 0x14]
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002f2fc
mov edi, dword [sym.imp.USER32.dll_DrawMenuBar]
mov byte [ebp - 0x41], 0
cmp byte [ebp - 0x41], 0
je 0x1002f334
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push 0
lea ecx, [ebp - 0xae4]
call fcn.1001646b
xor esi, esi
mov dword [ebp - 4], ebx
inc esi
lea ecx, [ebp - 0xae4]
mov dword [eax], esi
call fcn.10016466
push 3
pop ebx
mov dword [ebp - 0x38], 0xa1836ccb
lea ecx, [ebp - 0xe74]
mov dword [ebp - 0x1c], 0xdb856137
mov dword [ebp - 0x2c], 0
push ebx
call fcn.10016405
mov dword [ebp - 4], 0x13
mov dword [ebp - 0x14], 0
jmp 0x1002f399
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x11f4], 0xdd1edb6b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1002f388
mov dword [ebp - 0x14], 0
jmp 0x1002f3bb
push dword [ebp - 0x14]
lea ecx, [ebp - 0xe74]
call fcn.1001646b
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002f3a8
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
mov edx, dword [ebp - 0x38]
setg cl
xor eax, eax
cmp ecx, esi
mov ecx, 0xfc2da8af
setle al
cmp ecx, eax
sbb eax, eax
inc eax
sub edx, eax
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x38]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x38]
setne bl
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x11f0], 0
je 0x1002f448
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x11e8], eax
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x1c], 0xcc7
jl 0x1002f448
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x1002f44a
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
cmp ecx, 0xb171c250
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x70b1b9b9
mov eax, dword [ebp - 0x38]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x38]
setg bl
xor ecx, ecx
add ebx, 6
cmp ebx, eax
setle cl
xor eax, eax
cmp ecx, dword [ebp - 0x38]
jge 0x1002f494
cmp dword [ebp - 0x11f0], eax
jne 0x1002f494
mov esi, eax
push eax
lea ecx, [ebp - 0xe74]
call fcn.1001646b
lea ecx, [ebp - 0xe74]
mov dword [eax], esi
or esi, 0xffffffff
mov dword [ebp - 4], esi
call fcn.10016466
push 2
lea ecx, [ebp - 0xafc]
call fcn.10016405
mov dword [ebp - 4], 0x14
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], 0x3292c5eb
mov dword [ebp - 0x48], 0xfff7
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jge 0x1002f504
push dword [ebp - 0x14]
lea ecx, [ebp - 0xafc]
call fcn.1001646b
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002f4e8
xor eax, eax
inc eax
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], eax
jge 0x1002f529
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7d0], 0
xor eax, eax
inc dword [ebp - 0x14]
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002f510
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], eax
jg 0x1002f5e9
jmp 0x1002f53e
xor eax, eax
inc eax
mov dword [ebp - 0x3c], 0x1e4f1f13
mov dword [ebp - 0x3c], 0xe66c619a
push 3
mov dword [ebp - 0x14], 0
pop ecx
cmp dword [ebp - 0x14], ecx
jge 0x1002f574
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1520], 0x4df6f978
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1002f55b
xor eax, eax
inc eax
mov dword [ebp - 0x14], 0
jmp 0x1002f590
mov eax, dword [ebp - 0x14]
xor esi, esi
inc esi
mov dword [ebp + eax*4 - 0xfc0], esi
xor eax, eax
inc dword [ebp - 0x14]
inc eax
cmp dword [ebp - 0x14], eax
jl 0x1002f57d
mov eax, dword [ebp - 0x48]
dec dword [ebp - 0x48]
cmp eax, 0x278e
jle 0x1002f5a9
xor eax, eax
lea esi, [eax + 1]
jmp 0x1002f5ab
xor esi, esi
push dword [ebp - 0x10]
lea ecx, [ebp - 0xafc]
call fcn.1001646b
xor ecx, ecx
cmp esi, 0x161ab6ec
setne cl
imul ecx, ecx, 0xffff
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
inc eax
mov dword [ebp - 0x7d0], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x1002f53b
or esi, 0xffffffff
lea ecx, [ebp - 0xafc]
mov dword [ebp - 4], esi
call fcn.10016466
mov dword [ebp - 0x14], 0x1097
xor eax, eax
mov dword [ebp - 0x38], 0xfffffffb
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1002f61d
push 0x1105
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x1002f826
xor eax, eax
lea ecx, [ebp - 0x448]
inc eax
push eax
call fcn.10016405
mov dword [ebp - 4], 0x15
xor eax, eax
mov dword [ebp - 0x34], 0xd03248c6
mov dword [ebp - 0x20], esi
xor esi, esi
mov dword [ebp - 0x2c], 0xfffffffe
inc esi
mov dword [ebp - 0x40], 0x352601c8
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x1002f688
push dword [ebp - 0x10]
lea ecx, [ebp - 0x448]
call fcn.1001646b
mov dword [eax], 0xfffffffb
xor eax, eax
inc dword [ebp - 0x10]
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002f667
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], eax
jg 0x1002f812
xor eax, eax
lea ecx, [ebp - 0x890]
inc eax
push eax
call fcn.10016405
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x10], 0
jmp 0x1002f6c7
push dword [ebp - 0x10]
lea ecx, [ebp - 0x890]
call fcn.1001646b
mov dword [eax], 0x17f4039e
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002f6b0
push dword [ebp - 0x34]
lea ecx, [ebp - 0x448]
call fcn.1001646b
push 0
lea ecx, [ebp - 0x448]
call fcn.1001646b
mov ecx, dword [ebp - 0x38]
xor ebx, ebx
push dword [ebp - 0x34]
cmp dword [eax], ecx
lea ecx, [ebp - 0x448]
sete bl
call fcn.1001646b
xor ecx, ecx
cmp dword [eax], ebx
mov eax, dword [ebp - 0x38]
setle cl
xor edx, edx
cmp ecx, 0x7fa3dfad
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, 0x1c5a
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x38]
je 0x1002f73b
cmp dword [ebp - 0x38], 0
je 0x1002f73b
xor eax, eax
lea ecx, [eax + 1]
jmp 0x1002f73d
xor ecx, ecx
mov eax, dword [ebp - 0x34]
add eax, ecx
lea ecx, [ebp - 0x890]
cmp eax, 8
push 0
sbb esi, esi
neg esi
call fcn.1001646b
mov dword [eax], esi
mov eax, dword [ebp - 0x38]
imul eax, esi
neg eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jg 0x1002f7f6
push dword [ebp - 0x20]
lea ecx, [ebp - 0x448]
call fcn.1001646b
xor ebx, ebx
cmp dword [eax], ebx
jne 0x1002f791
push ebx
lea ecx, [ebp - 0x448]
call fcn.1001646b
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x448]
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x20]
call fcn.1001646b
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x890]
mov eax, dword [ebp - 0x38]
xor eax, eax
inc eax
mov dword [ebp - 0x40], eax
push ebx
call fcn.1001646b
mov ecx, dword [ebp - 0x40]
xor edx, edx
cmp ecx, 0xfffffffb
mov esi, eax
setge dl
sub edx, 0x53d9
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x20f620a3
setg cl
xor eax, eax
cmp ecx, dword [esi]
setge al
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1002f771
lea ecx, [ebp - 0x890]
mov byte [ebp - 4], 0x15
call fcn.10016466
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0
jle 0x1002f694
or esi, 0xffffffff
lea ecx, [ebp - 0x448]
mov dword [ebp - 4], esi
call fcn.10016466
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xfffffff6
jg 0x1002f625
mov dword [ebp - 0x1c], 0x1ee4cff1
mov dword [ebp - 0x30], 0x653d
mov dword [ebp - 0x24], 0xb3e713e1
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x591b
setne al
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setg dl
sub eax, edx
cmp eax, dword [ebp - 0x30]
je 0x1002f88d
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x16b5
setg cl
imul ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x30]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x30]
jg 0x1002f8df
mov dword [ebp - 0x2c], 0xd7feae21
mov dword [ebp - 0x24], 0x13
jmp 0x1002f8d4
mov dword [ebp - 0x2c], 0xe80c6548
cmp dword [ebp - 0x24], 0
jne 0x1002fa1d
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xb
jle 0x1002f8c0
jmp 0x1002fa1d
xor eax, eax
lea ecx, [ebp - 0x7ec]
inc eax
push eax
call fcn.10016405
push 4
lea ecx, [ebp - 0x9a4]
mov dword [ebp - 4], 0x17
call fcn.10016405
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x48], 0x76e30f4a
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x2c], 0xfb6f8a3e
mov dword [ebp - 0x38], 0
jmp 0x1002f937
push dword [ebp - 0x38]
lea ecx, [ebp - 0x7ec]
call fcn.1001646b
mov dword [eax], 0x131dda87
inc dword [ebp - 0x38]
xor eax, eax
inc eax
cmp dword [ebp - 0x38], eax
jl 0x1002f920
mov dword [ebp - 0x38], 0
jmp 0x1002f955
push dword [ebp - 0x38]
call fcn.1001646b
mov dword [eax], esi
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 4
lea ecx, [ebp - 0x9a4]
jl 0x1002f948
push 2
call fcn.1001646b
mov ecx, 0xac39b398
mov dword [eax], ecx
cmp dword [ebp - 0x24], ecx
jne 0x1002f981
push 2
lea ecx, [ebp - 0x9a4]
call fcn.1001646b
mov dword [ebp - 0x48], 7
xor edx, edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setle dl
xor eax, eax
cmp edx, dword [ebp - 0x24]
jg 0x1002f9a5
cmp dword [ebp - 0x48], eax
jne 0x1002f9a5
mov esi, eax
jmp 0x1002f9a8
xor esi, esi
inc esi
push eax
lea ecx, [ebp - 0x7ec]
call fcn.1001646b
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x7ec]
xor ebx, ebx
push ebx
call fcn.1001646b
push ebx
lea ecx, [ebp - 0x7ec]
sub esi, dword [eax]
xor eax, eax
cmp esi, 0xb751
setle al
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
call fcn.1001646b
lea ecx, [ebp - 0x9a4]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
call fcn.10016466
or esi, 0xffffffff
lea ecx, [ebp - 0x7ec]
mov dword [ebp - 4], esi
call fcn.10016466
push 3
pop ebx
push ebx
lea ecx, [ebp - 0x64c]
call fcn.10016405
push 0x19
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], 0xf
cmp dword [ebp - 0x1c], eax
jl 0x1002fa73
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], 0xfffffff6
jmp 0x1002fa64
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002fa61
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe2
jge 0x1002fa4f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x19
jge 0x1002fa43
xor eax, eax
lea ecx, [ebp - 0x130]
inc eax
mov dword [ebp - 0x24], eax
push 4
call fcn.10016405
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x10ec]
mov dword [ebp - 0x10], 0x72159124
xor eax, eax
mov dword [ebp - 0x20], 0x238e486a
inc eax
mov dword [ebp - 0x34], 0x68cd546
mov dword [ebp - 0x3c], 0xfffffffd
mov dword [ebp - 0x40], 0x4593f6a0
mov dword [ebp - 0x3c], 0xfffffffe
mov dword [ebp - 0x3c], eax
push ebx
call fcn.10016405
mov byte [ebp - 4], 0x1b
xor eax, eax
mov dword [ebp - 0x1c], 0x4912
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 4
jge 0x1002fafb
push dword [ebp - 0x30]
lea ecx, [ebp - 0x130]
call fcn.1001646b
and dword [eax], 0
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 4
jl 0x1002fadf
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
jge 0x1002fb17
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0xcdc], esi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x1002fb03
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x1002fb33
push dword [ebp - 0x30]
lea ecx, [ebp - 0x10ec]
call fcn.1001646b
mov dword [eax], 0x5708880d
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x1002fb1c
xor eax, eax
lea ecx, [ebp - 0x130]
inc eax
push eax
call fcn.1001646b
mov esi, eax
lea ecx, [ebp - 0x130]
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov esi, dword [esi]
lea ecx, [ebp - 0x130]
sub esi, dword [eax]
neg esi
sbb esi, esi
xor eax, eax
inc eax
inc esi
push eax
call fcn.1001646b
xor ecx, ecx
cmp esi, dword [eax]
setle cl
xor ebx, ebx
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x130]
push ebx
call fcn.1001646b
lea ecx, [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
xor eax, eax
inc eax
push eax
call fcn.1001646b
xor ecx, ecx
cmp dword [eax], ebx
setne cl
xor eax, eax
inc eax
mov dword [ebp - 0x2c], ecx
push eax
lea ecx, [ebp - 0x130]
call fcn.1001646b
lea ecx, [ebp - 0x130]
cmp dword [eax], ebx
setne bl
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov ecx, dword [ebp - 0x2c]
xor edx, edx
add ecx, ebx
cmp dword [eax], ecx
lea ecx, [ebp - 0x130]
setle dl
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, eax
inc eax
push eax
call fcn.1001646b
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x130]
push 3
pop esi
push esi
call fcn.1001646b
xor eax, eax
lea ecx, [ebp - 0x130]
inc eax
push eax
call fcn.1001646b
xor eax, eax
lea ecx, [ebp - 0x130]
inc eax
push eax
call fcn.1001646b
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002fc72
mov dword [ebp - 0x3c], 0xfffffff6
or ecx, 0xffffffff
mov dword [ebp - 0x3c], 0x1fb9a31c
mov dword [ebp - 0x3c], 0xfffffffa
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x3c], 0x1aedf47
mov dword [ebp - 0x10], eax
jmp 0x1002fc5f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xfd0], 0xfffffffe
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002fc4e
inc dword [ebp - 0x4c]
push 2
pop ebx
jmp 0x1002fe63
mov dword [ebp - 0x48], 6
mov dword [ebp - 0x40], 0xcf10aa6f
push 2
mov dword [ebp - 0x34], eax
pop ebx
cmp dword [ebp - 0x34], ebx
jg 0x1002fe63
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x1002fcb8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x854], 0x46d8da56
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1002fc9f
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jg 0x1002fe4d
xor eax, eax
mov dword [ebp - 0x30], 0xe8591f28
inc eax
mov dword [ebp - 0x2c], 0x54fcfb0f
push eax
lea ecx, [ebp - 0x9bc]
call fcn.10016405
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x38], 0
jmp 0x1002fcff
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xa04], 0
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], ebx
jl 0x1002fcee
mov dword [ebp - 0x38], 0
jmp 0x1002fd24
push dword [ebp - 0x38]
lea ecx, [ebp - 0x9bc]
call fcn.1001646b
mov dword [eax], 0x97c8
inc dword [ebp - 0x38]
xor eax, eax
inc eax
cmp dword [ebp - 0x38], eax
jl 0x1002fd0d
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x130]
inc eax
push eax
call fcn.1001646b
xor ebx, ebx
cmp dword [eax], ebx
jne 0x1002fd6d
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x130]
call fcn.1001646b
mov ecx, dword [ebp - 0x48]
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [ebp - 0x848]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
xor eax, eax
inc eax
mov dword [ebp - 0xa00], eax
mov eax, dword [ebp - 0x848]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x84c]
mov eax, dword [ebp - 0x854]
mov eax, dword [ebp - 0x848]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0xa00], eax
jne 0x1002fdbe
mov eax, dword [ebp - 0x34]
cmp dword [ebp + eax*4 - 0xcdc], ebx
jne 0x1002fdbe
xor ecx, ecx
jmp 0x1002fdc3
xor eax, eax
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0xcdc]
imul eax, ecx
xor ecx, ecx
cmp eax, 0xfffd
mov eax, dword [ebp - 0x34]
setne cl
mov dword [ebp + eax*4 - 0xcdc], ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x848]
xor eax, eax
cmp dword [ebp - 0x30], eax
je 0x1002fe10
push eax
lea ecx, [ebp - 0x9bc]
call fcn.1001646b
cmp dword [eax], ebx
je 0x1002fe0e
xor eax, eax
lea esi, [eax + 1]
jmp 0x1002fe12
xor eax, eax
mov esi, eax
push eax
lea ecx, [ebp - 0x9bc]
call fcn.1001646b
mov ecx, dword [ebp - 0x34]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x9bc]
setl dl
add edx, dword [eax]
mov dword [ebp - 0x10], edx
mov byte [ebp - 4], 0x1b
call fcn.10016466
inc dword [ebp - 0x1c]
push 2
pop ebx
cmp dword [ebp - 0x1c], ebx
jle 0x1002fcc4
xor eax, eax
mov dword [ebp - 0x2c], 5
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], ebx
jle 0x1002fc8f
push 3
pop esi
lea ecx, [ebp - 0x10ec]
call fcn.10016466
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0x19
call fcn.10016466
mov dword [ebp - 0x10], esi
lea ecx, [ebp - 0x9d4]
mov dword [ebp - 0x30], 0x3245
xor eax, eax
mov dword [ebp - 0x20], 0xc0d37ad4
inc eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x28], 0x1404fc4b
mov dword [ebp - 0x28], 0x7d4763c6
mov dword [ebp - 0x2c], 5
push eax
call fcn.10016405
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x10], 0
jmp 0x1002fed9
push dword [ebp - 0x10]
lea ecx, [ebp - 0x9d4]
call fcn.1001646b
mov dword [eax], 0x7a22f0f5
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1002fec2
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0x20], eax
xor edx, edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
sub edx, 0x3a88
neg edx
sbb edx, edx
add eax, dword [ebp - 0x30]
xor ecx, ecx
inc edx
cmp eax, 0x1cdc
setle cl
sub ecx, edx
mov ecx, 0xaa3e8f08
je 0x10030011
mov dword [ebp - 0x40], 0x497f3c88
mov dword [ebp - 0x28], 0x4c01e07a
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x30], 0x3b
jle 0x10030049
xor esi, esi
inc esi
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x48], 0xfffffff7
mov dword [ebp - 0x20], 0x12
jmp 0x1002fff8
mov dword [ebp - 0x2c], 5
cmp dword [ebp - 0x1c], 0
jne 0x1002ffd2
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x40]
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, 0x6353005
jne 0x1002ff8f
cmp dword [ebp - 0x1c], 0
je 0x1002ff8f
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x1002ff91
xor ecx, ecx
mov eax, dword [ebp - 0x10]
sub ecx, eax
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x2c]
cmp eax, esi
setl cl
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x2aa4168
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x2c], 0x36c1d66b
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1002fff0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
dec dword [ebp - 0x20]
mov ecx, 0xaa3e8f08
cmp dword [ebp - 0x20], 0xf
jl 0x1002ff5e
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x3b
jg 0x1002ff44
jmp 0x10030046
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jg 0x10030049
push dword [ebp - 0x30]
lea ecx, [ebp - 0x9d4]
call fcn.1001646b
push dword [ebp - 0x30]
lea ecx, [ebp - 0x9d4]
mov esi, eax
call fcn.1001646b
mov ecx, dword [esi]
mov dword [eax], ecx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0
jle 0x1003001b
push 3
pop esi
lea ecx, [ebp - 0x9d4]
mov byte [ebp - 4], 0x19
call fcn.10016466
mov dword [ebp - 0x2c], 0x8f949145
mov dword [ebp - 0x1c], 0x9b55bb2c
mov dword [ebp - 0x10], 0
jmp 0x10030080
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xfe0], 0x252
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x1003006f
mov dword [ebp - 0x1c], 0xb
jmp 0x10030143
push esi
lea ecx, [ebp - 0x4dc]
call fcn.10016405
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x10], 0
jmp 0x100300be
push dword [ebp - 0x10]
call fcn.1001646b
mov dword [eax], 0x8795010f
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x4dc]
cmp dword [ebp - 0x10], esi
jl 0x100300ad
push ebx
call fcn.1001646b
xor ebx, ebx
lea ecx, [ebp - 0x4dc]
push 2
mov dword [eax], ebx
call fcn.1001646b
push 2
cmp dword [eax], ebx
pop ebx
jg 0x10030131
cmp dword [ebp - 0x1c], 0xffffffe9
jle 0x10030094
mov dword [ebp - 0x3c], 0xe133
lea ecx, [ebp - 0xeec]
mov dword [ebp - 0x3c], 0x7c7c
push ebx
call fcn.10016405
mov byte [ebp - 4], 0x1f
or eax, 0xffffffff
mov dword [ebp - 0x3c], 0xfffffffb
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0xf0a9b27f
mov dword [ebp - 0x10], eax
jmp 0x1003019a
push dword [ebp - 0x10]
call fcn.1001646b
mov dword [eax], 0xfffffffa
inc dword [ebp - 0x10]
lea ecx, [ebp - 0xeec]
cmp dword [ebp - 0x10], ebx
jl 0x10030189
inc dword [ebp - 0x40]
mov byte [ebp - 4], 0x19
call fcn.10016466
xor eax, eax
or ecx, 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], 0x672ca3c0
mov dword [ebp - 0x38], 0x1247adf1
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x3c], 0xd658edf
mov dword [ebp - 0x3c], 0x2c87a752
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], 0x3e13a6c9
mov dword [ebp - 0x50], 0xcfbce008
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0x8e92eda8
mov dword [ebp - 0x48], 0x64f6cbcb
mov dword [ebp - 0x3c], 0xa3bdf78
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], 0x1b30
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x34], 0x6df3f186
mov dword [ebp - 0x30], 0xc374
mov dword [ebp - 0x40], 0x4c89aed2
mov dword [ebp - 0x10], eax
jmp 0x10030240