Function at 0x1002d83b
Capabilities:
Check for time delay via gettickcount
Check os version
Connect pipe
Create directory
Create pipe
Create process on windows
Create thread
Delete file
Delete registry value
Enumerate gui resources
Get common file path
Get file attributes
Get file size
Get geographical location
Get thread local storage value
Log keystrokes via polling
Parse pe header
Query or enumerate registry key
Read .ini file
Resume thread
Set registry value

Disassembly:
mov eax, 0x1007924d
call fcn.10077f88
mov eax, 0x12b4
call fcn.10074740
push ebx
push esi
push edi
push 2
pop ebx
push 6
pop esi
mov dword [ebp - 0x1c], ebx
xor eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
push 0xfffffffffffffff8
mov dword [ebp - 0x54], ecx
mov byte [ebp - 0x79], dl
pop ecx
jge 0x1002d887
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa68], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1002d872
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffed
push 1
pop edi
jg 0x1002d986
mov dword [ebp - 0x20], 0xbbe5
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setle bl
xor ecx, ecx
cmp ebx, eax
setg cl
xor eax, eax
cmp ecx, dword [ebp - 0x1c]
jl 0x1002d8cd
mov ecx, edi
cmp dword [ebp - 0x1c], eax
jne 0x1002d8cf
mov ecx, eax
xor eax, eax
cmp ecx, 0xd373
setg al
xor edx, edx
imul ecx, eax, 0x7637
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setl dl
xor eax, eax
add edx, dword [ebp - 0x20]
cmp edx, 0x714ffd81
setg al
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 0xfffffffb
jmp 0x1002d96e
xor eax, eax
mov dword [ebp - 0x30], 0x6717b38e
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1002d92f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x106c], 0xf6c5533f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1002d916
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002d940
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov dword [ebp - 0xa64], 0x442b7a8a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa64]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1064], edi
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe5
jle 0x1002d904
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffed
jle 0x1002d897
push 2
xor eax, eax
pop ebx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x1002d9a8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa68], 0x3c12d493
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002d98f
xor eax, eax
push 8
pop ecx
mov dword [ebp - 0x20], 0xd94fe5f3
mov dword [ebp - 0x38], 0x98815cbc
mov dword [ebp - 0x50], ecx
push 0xfffffffffffffffe
pop ecx
mov dword [ebp - 0x50], ecx
push 4
mov dword [ebp - 0x44], 0x4456e348
mov dword [ebp - 0x10], eax
pop ecx
jmp 0x1002d9de
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1180], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1002d9d1
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0x1174], ecx
mov eax, dword [ebp - 0x38]
cmp eax, ecx
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp eax, edx
push 4
setg cl
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, 0xa8f9
mov ecx, dword [ebp - 0x50]
sub ecx, 0xef98
add ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
lea ecx, [ebp - 0xdbc]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0xc4ab274b
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x10], 0x2526041
call fcn.1001540a
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
jmp 0x1002da67
push dword [ebp - 0x10]
lea ecx, [ebp - 0xdbc]
call fcn.10015477
mov dword [eax], 0x95010f7a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1002da50
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
neg eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x10], 3
cmp dword [ebp - 0x10], eax
jl 0x1002daa3
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002da9e
push eax
push eax
push eax
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
xor eax, eax
dec dword [ebp - 0x10]
jns 0x1002da89
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdbc]
call fcn.10015472
xor eax, eax
lea ecx, [ebp - 0x2f8]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], 0xfffb
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x10], 0x12630673
push ebx
call fcn.1001540a
xor eax, eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1002db0c
push dword [ebp - 0x10]
lea ecx, [ebp - 0x2f8]
call fcn.10015477
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002daf2
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x1002dc3c
jmp 0x1002db1c
xor eax, eax
mov dword [ebp - 0x1c], 0x1891f782
mov dword [ebp - 0x28], 0xb000e2e4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002db47
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x6c], 0x51d69f42
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002db32
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x1002dc09
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x6c], 0
jne 0x1002db76
mov ecx, dword [ebp - 0x6c]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setne dl
cmp edx, 0x7392
jne 0x1002db76
mov edx, edi
jmp 0x1002db7a
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], eax
je 0x1002db91
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x6c]
cmp eax, 0x7825
mov eax, dword [ebp - 0x6c]
setl cl
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x18]
sub ecx, eax
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
cmp eax, edx
mov eax, dword [ebp - 0x1c]
setne cl
cmp ecx, 0xd437f1bd
sbb ecx, ecx
neg ecx
cmp dword [ebp + eax*4 - 0x6c], ecx
je 0x1002dbe1
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, 0xae055a24
mov eax, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6c], ecx
dec dword [ebp - 0x1c]
jns 0x1002db53
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x6c]
setg dl
sub eax, edx
je 0x1002dc23
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1002db1a
push 0xfffffffffffffff8
xor ecx, ecx
mov dword [ebp - 0x18], 0x70b7
mov eax, dword [ebp - 0x28]
pop ebx
cmp eax, ebx
setne cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x2f8]
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x10]
mov esi, eax
mov eax, 0xffff
cmp eax, ecx
mov ecx, dword [ebp - 0x28]
sbb edx, edx
xor eax, eax
neg edx
cmp edx, ecx
setle al
xor ecx, ecx
cmp eax, 0x6c07
setg cl
xor eax, eax
cmp ecx, ebx
setne al
xor ecx, ecx
cmp eax, dword [esi]
setle cl
xor ebx, ebx
cmp ecx, 0xc008b242
lea ecx, [ebp - 0x2f8]
setne bl
xor eax, eax
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x18]
xor edx, edx
cmp ecx, ebx
setne dl
xor ecx, ecx
cmp edx, dword [eax]
setge cl
xor eax, eax
cmp ecx, dword [ebp - 0x20]
jg 0x1002dccb
mov esi, edi
cmp dword [ebp - 0x20], eax
jne 0x1002dccd
mov esi, eax
push eax
lea ecx, [ebp - 0x2f8]
call fcn.10015477
mov ecx, dword [ebp - 0x28]
sub esi, ecx
sub esi, dword [eax]
mov eax, dword [ebp - 0x28]
neg esi
sbb esi, esi
inc esi
imul eax, esi
test eax, eax
jne 0x1002dcf8
cmp dword [ebp - 0x10], eax
jne 0x1002dcfa
mov esi, eax
jmp 0x1002dcfc
xor eax, eax
mov esi, edi
push eax
lea ecx, [ebp - 0x2f8]
call fcn.10015477
xor ebx, ebx
lea ecx, [ebp - 0x2f8]
push edi
cmp esi, dword [eax]
setl bl
call fcn.10015477
mov edx, dword [ebp - 0x3c]
xor ecx, ecx
imul edx, ebx
add edx, dword [eax]
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x2f8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
push eax
call fcn.10015477
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edi
setl cl
or esi, 0xffffffff
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x2f8]
mov dword [ebp - 4], esi
call fcn.10015472
mov dword [ebp - 0x4c], 0xfffffffe
xor eax, eax
mov dword [ebp - 0x24], 0x24039b64
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x1002dd9c
push 0x390
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002ddb4
push eax
push eax
push 0x913
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x488]
call fcn.1001540a
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], 0xfffffffb
cmp dword [ebp - 0x28], 0xe
jg 0x1002de36
jmp 0x1002dddf
xor eax, eax
mov dword [ebp - 0x10], 0x8f0d
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002de00
push 0x1527
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x10]
jg 0x1002de28
xor eax, eax
cmp dword [ebp - 0x38], eax
je 0x1002de2a
mov eax, edi
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xe
jle 0x1002dddd
mov dword [ebp - 0x1c], 0xfffd
lea ecx, [ebp - 0x6d8]
mov dword [ebp - 0x10], 0xabefa025
push ebx
call fcn.1001540a
mov byte [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x18], 0x504cd453
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1002de85
push 8
pop edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x6d8]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002de68
xor edi, edi
inc edi
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x1002dea7
push dword [ebp - 0x18]
lea ecx, [ebp - 0x6d8]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002de8d
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x1002debd
push dword [ebp - 0x18]
call fcn.10015477
mov dword [eax], 0xa473
inc dword [ebp - 0x18]
lea ecx, [ebp - 0x6d8]
cmp dword [ebp - 0x18], ebx
jl 0x1002deac
mov byte [ebp - 4], bl
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x18], 0x15b01d97
mov dword [ebp - 0x10], eax
jmp 0x1002def5
push dword [ebp - 0x10]
lea ecx, [ebp - 0x488]
call fcn.10015477
mov dword [eax], 0xdae4f9db
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002dede
mov dword [ebp - 0x3c], 0xfffffffa
lea ecx, [ebp - 0xa80]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x20], 0x811f
push edi
call fcn.1001540a
mov byte [ebp - 4], 4
xor eax, eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002df49
push dword [ebp - 0x10]
lea ecx, [ebp - 0xa80]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002df2f
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x1002df69
mov dword [ebp - 0x38], 0xca0029bf
mov dword [ebp - 0x44], 0x90be4438
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], 7
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0x16
je 0x1002df4e
mov eax, dword [ebp - 0x28]
sub eax, 0x6dd2cc91
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x50]
jg 0x1002df84
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002dfa1
mov esi, edi
cmp dword [ebp - 0x50], eax
jne 0x1002dfa3
mov esi, eax
push eax
lea ecx, [ebp - 0xa80]
call fcn.10015477
mov eax, dword [eax]
add eax, esi
jne 0x1002dfbc
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x1002dfbe
mov ecx, edi
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
setg dl
imul edx, dword [ebp - 0x48]
sub edx, 0x77b69c93
neg edx
sbb edx, edx
inc edx
cmp edx, 0x83e731e7
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x5cbf
setne cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0xa80]
mov byte [ebp - 4], bl
call fcn.10015472
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x488]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
xor eax, eax
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x488]
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x488]
push eax
call fcn.10015477
xor edx, edx
cmp dword [eax], edx
mov eax, dword [ebp - 0x1c]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
neg eax
cmp eax, edi
mov eax, dword [ebp - 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
add ecx, dword [ebp - 0x18]
je 0x1002e07c
mov edx, edi
cmp dword [ebp - 0x18], eax
jne 0x1002e07e
mov edx, eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0x4325
mov eax, 0xffff
setle cl
imul ecx, edx
cmp ecx, eax
jbe 0x1002e0a2
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x1002e0a4
mov edx, edi
jmp 0x1002e0a6
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], eax
jmp 0x1002e0d1
mov dword [ebp - 0x30], eax
jmp 0x1002e0c9
mov dword [ebp - 0x40], 0xfffffffb
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jle 0x1002e0bf
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x1002e0ba
or esi, 0xffffffff
lea ecx, [ebp - 0x488]
mov dword [ebp - 4], esi
call fcn.10015472
mov dword [ebp - 0x20], esi
lea ecx, [ebp - 0xb20]
mov dword [ebp - 0x10], 0x2526041
push 4
call fcn.1001540a
xor eax, eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x10], eax
jmp 0x1002e123
push dword [ebp - 0x10]
lea ecx, [ebp - 0xb20]
call fcn.10015477
mov dword [eax], 0x95010f7a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1002e10c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
neg eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x10], 3
cmp dword [ebp - 0x10], eax
jl 0x1002e15f
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002e15a
push eax
push eax
push eax
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
xor eax, eax
dec dword [ebp - 0x10]
jns 0x1002e145
lea ecx, [ebp - 0xb20]
mov dword [ebp - 4], esi
call fcn.10015472
mov dword [ebp - 0x40], 0xc4ab274b
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 0x18], 0xfffffffa
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], 0xfffb
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x10], 0x12630673
push ebx
call fcn.1001540a
push 6
xor eax, eax
pop esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1002e1ca
push dword [ebp - 0x10]
lea ecx, [ebp - 0x2b8]
call fcn.10015477
mov dword [eax], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002e1b0
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x1002e2fa
jmp 0x1002e1da
xor eax, eax
mov dword [ebp - 0x1c], 0x1891f782
mov dword [ebp - 0x30], 0xb000e2e4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002e205
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x70], 0x51d69f42
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002e1f0
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x1002e2c7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x70], 0
jne 0x1002e234
mov ecx, dword [ebp - 0x70]
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setne dl
cmp edx, 0x7392
jne 0x1002e234
mov edx, edi
jmp 0x1002e238
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], eax
je 0x1002e24f
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x70]
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x70]
cmp eax, 0x7825
mov eax, dword [ebp - 0x70]
setl cl
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x18]
sub ecx, eax
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x70]
cmp eax, edx
mov eax, dword [ebp - 0x1c]
setne cl
cmp ecx, 0xd437f1bd
sbb ecx, ecx
neg ecx
cmp dword [ebp + eax*4 - 0x70], ecx
je 0x1002e29f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, 0xae055a24
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x70]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x70], ecx
dec dword [ebp - 0x1c]
jns 0x1002e211
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x70]
setg dl
sub eax, edx
je 0x1002e2e1
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1002e1d8
push 0xfffffffffffffff8
xor ecx, ecx
mov dword [ebp - 0x18], 0x70b7
mov eax, dword [ebp - 0x28]
pop ebx
cmp eax, ebx
setne cl
xor eax, eax
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x2b8]
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x10]
mov esi, eax
mov eax, 0xffff
cmp eax, ecx
mov ecx, dword [ebp - 0x28]
sbb edx, edx
xor eax, eax
neg edx
cmp edx, ecx
setle al
xor ecx, ecx
cmp eax, 0x6c07
setg cl
xor eax, eax
cmp ecx, ebx
setne al
xor ecx, ecx
cmp eax, dword [esi]
setle cl
xor ebx, ebx
cmp ecx, 0xc008b242
lea ecx, [ebp - 0x2b8]
setne bl
xor eax, eax
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x18]
xor edx, edx
cmp ecx, ebx
setne dl
xor ecx, ecx
cmp edx, dword [eax]
setge cl
xor eax, eax
cmp ecx, dword [ebp - 0x20]
jg 0x1002e389
mov esi, edi
cmp dword [ebp - 0x20], eax
jne 0x1002e38b
mov esi, eax
push eax
lea ecx, [ebp - 0x2b8]
call fcn.10015477
mov ecx, dword [ebp - 0x28]
sub esi, ecx
sub esi, dword [eax]
mov eax, dword [ebp - 0x28]
neg esi
sbb esi, esi
inc esi
imul eax, esi
test eax, eax
jne 0x1002e3b6
cmp dword [ebp - 0x10], eax
jne 0x1002e3b8
mov esi, eax
jmp 0x1002e3ba
xor eax, eax
mov esi, edi
push eax
lea ecx, [ebp - 0x2b8]
call fcn.10015477
xor ebx, ebx
lea ecx, [ebp - 0x2b8]
push edi
cmp esi, dword [eax]
setl bl
call fcn.10015477
mov edx, dword [ebp - 0x3c]
xor ecx, ecx
imul edx, ebx
add edx, dword [eax]
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x2b8]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
push eax
call fcn.10015477
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edi
setl cl
or esi, 0xffffffff
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], esi
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], 0x24039b64
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x1002e456
push 0x390
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002e470
push eax
push eax
push 0x913
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
xor eax, eax
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], 0xfffffffb
cmp dword [ebp - 0x28], 0xe
jg 0x1002e4e5
jmp 0x1002e48e
xor eax, eax
mov dword [ebp - 0x10], 0x8f0d
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002e4af
push 0x1527
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x10]
jg 0x1002e4d7
xor eax, eax
cmp dword [ebp - 0x38], eax
je 0x1002e4d9
mov eax, edi
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xe
jle 0x1002e48c
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x544]
call fcn.1001540a
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x660]
mov dword [ebp - 0x4c], 0xfffd
push ebx
call fcn.1001540a
push 8
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x18], 0x504cd453
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1002e545
push 8
pop edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x660]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002e528
xor edi, edi
inc edi
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x1002e567
push dword [ebp - 0x18]
lea ecx, [ebp - 0x660]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002e54d
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x1002e57d
push dword [ebp - 0x18]
call fcn.10015477
mov dword [eax], 0xa473
inc dword [ebp - 0x18]
lea ecx, [ebp - 0x660]
cmp dword [ebp - 0x18], ebx
jl 0x1002e56c
mov byte [ebp - 4], 7
call fcn.10015472
mov dword [ebp - 0x10], 0xabefa025
lea ecx, [ebp - 0xa98]
mov dword [ebp - 0x3c], 0xfffffffa
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x20], 0x811f
push edi
call fcn.1001540a
push 9
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002e5e9
push dword [ebp - 0x10]
lea ecx, [ebp - 0xa98]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002e5cf
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x1002e609
mov dword [ebp - 0x38], 0xca0029bf
mov dword [ebp - 0x44], 0x90be4438
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], 7
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0x16
je 0x1002e5ee
mov eax, dword [ebp - 0x28]
sub eax, 0x6dd2cc91
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x50]
jg 0x1002e624
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x1002e641
mov esi, edi
cmp dword [ebp - 0x50], eax
jne 0x1002e643
mov esi, eax
push eax
lea ecx, [ebp - 0xa98]
call fcn.10015477
mov eax, dword [eax]
add eax, esi
jne 0x1002e65c
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x1002e65e
mov ecx, edi
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
setg dl
imul edx, dword [ebp - 0x48]
sub edx, 0x77b69c93
neg edx
sbb edx, edx
inc edx
cmp edx, 0x83e731e7
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x5cbf
setne cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0xa98]
mov byte [ebp - 4], 7
call fcn.10015472
mov dword [ebp - 0x48], 0x15b01d97
lea ecx, [ebp - 0xce4]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], 0x8d9a2b82
mov dword [ebp - 0x24], 0x4c20f746
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x24], 0xfffffff7
push 9
mov dword [ebp - 0x24], 0x223b16aa
pop esi
mov dword [ebp - 0x24], 0x6c715341
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x24], 0xffffffff
push ebx
call fcn.1001540a
mov byte [ebp - 4], 0xa
xor eax, eax
mov dword [ebp - 0x50], 5
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x1002e728
push dword [ebp - 0x18]
lea ecx, [ebp - 0xce4]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002e70e
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x1002e748
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x10b0], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002e730
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x10
jge 0x1002e790
push 0xfffffffffffffff6
pop edi
mov dword [ebp - 0x10], edi
mov eax, dword [ebp - 0x18]
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x1002e764
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, esi
jne 0x1002e771
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
xor edx, edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setne dl
mov dword [ebp - 0x10], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x10
jl 0x1002e754
xor edi, edi
inc edi
inc dword [ebp - 0x50]
lea ecx, [ebp - 0xce4]
mov byte [ebp - 4], 7
call fcn.10015472
mov dword [ebp - 0x1c], 0x1d69f428
xor eax, eax
mov dword [ebp - 0x10], 0xfecbe92e
mov dword [ebp - 0x38], 0xe4ed383d
mov dword [ebp - 0x38], 0xff3e141b
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
jge 0x1002e7e5
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x87c], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1002e7cc
xor eax, eax
mov esi, edi
cmp dword [ebp - 0x1c], eax
jne 0x1002e7ee
mov esi, eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
imul ecx, dword [ebp - 0x1c], 0xfffffff7
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x87c], ecx
mov edx, dword [ebp - 0x1c]
imul edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
sub eax, 0xfff7
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp esi, eax
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
add ecx, 3
add ecx, edx
xor edx, edx
cmp eax, ecx
setg dl
mov dword [ebp - 0x1c], edx
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x87c]
cmp eax, ecx
setle dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x1002e8b0
push dword [ebp - 0x10]
lea ecx, [ebp - 0x544]
call fcn.10015477
mov dword [eax], 0xdae4f9db
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1002e892
xor eax, eax
mov dword [ebp - 0x3c], 0xdc85f70a
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002e8cd
push 0x22b7
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x1002ea7a
push ebx
lea ecx, [ebp - 0x720]
call fcn.1001540a
push 3
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0xb
call fcn.1001540a
xor eax, eax
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x1002e91a
push dword [ebp - 0x18]
lea ecx, [ebp - 0x720]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002e900
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x1002e942
push dword [ebp - 0x18]
lea ecx, [ebp - 0x12c]
call fcn.10015477
mov dword [eax], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002e923
xor eax, eax
push eax
lea ecx, [ebp - 0x12c]
call fcn.10015477
lea ecx, [ebp - 0x12c]
and dword [eax], 0
xor eax, eax
push eax
call fcn.10015477
cmp dword [eax], edi
jg 0x1002ea5d
mov dword [ebp - 0x20], edi
xor eax, eax
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x20], eax
jl 0x1002e991
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002e98c
push 0x1380
push eax
push eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x1002e974
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x12c]
push edi
call fcn.10015477
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x720]
xor eax, eax
push eax
call fcn.10015477
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x12c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x12c]
push eax
call fcn.10015477
xor ecx, ecx
cmp dword [eax], ebx
sete cl
xor eax, eax
imul esi, ecx, 0xd402
lea ecx, [ebp - 0x12c]
push eax
call fcn.10015477
xor ebx, ebx
lea ecx, [ebp - 0x12c]
cmp esi, dword [eax]
setge bl
xor eax, eax
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x3c]
xor edx, edx
add ecx, 9
cmp ecx, ebx
lea ecx, [ebp - 0x12c]
setl dl
xor ebx, ebx
cmp edx, dword [eax]
setl bl
xor eax, eax
push eax
call fcn.10015477
lea ecx, [ebp - 0x720]
push dword [eax]
call fcn.10015477
lea ecx, [ebp - 0x12c]
mov dword [eax], ebx
xor eax, eax
push eax
call fcn.10015477
lea ecx, [ebp - 0x12c]
inc dword [eax]
xor eax, eax
push eax
call fcn.10015477
push 2
pop ebx
cmp dword [eax], edi
jle 0x1002e967
lea ecx, [ebp - 0x12c]
call fcn.10015472
lea ecx, [ebp - 0x720]
mov byte [ebp - 4], 7
call fcn.10015472
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0x14
jge 0x1002e8d5
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x544]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x40]
xor eax, eax
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x544]
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x544]
push eax
call fcn.10015477
xor edx, edx
cmp dword [eax], edx
mov eax, dword [ebp - 0x4c]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
neg eax
cmp eax, edi
mov eax, dword [ebp - 0x4c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
add ecx, dword [ebp - 0x48]
je 0x1002eaf8
mov edx, edi
cmp dword [ebp - 0x48], eax
jne 0x1002eafa
mov edx, eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
mov ebx, 0x4325
cmp eax, ebx
mov eax, 0xffff
setle cl
imul ecx, edx
cmp ecx, eax
jbe 0x1002eb20
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x1002eb22
mov edx, edi
jmp 0x1002eb24
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
push 4
setl cl
xor eax, eax
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x678]
mov dword [ebp - 0x1c], eax
call fcn.1001540a
xor eax, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x1002eb6d
push dword [ebp - 0x10]
lea ecx, [ebp - 0x678]
call fcn.10015477
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1002eb52
xor eax, eax
mov esi, edi
cmp dword [ebp - 0x1c], eax
jne 0x1002eb76
mov esi, eax
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x678]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, eax
push eax
call fcn.10015477
xor ecx, ecx
cmp esi, edi
setge cl
imul ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jg 0x1002ec13
jmp 0x1002ebbd
xor eax, eax
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x10], eax
jmp 0x1002ebda
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2e0], 0xfffe
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002ebc9
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x678]
call fcn.10015477
cmp dword [eax], 0
jne 0x1002ec13
mov dword [ebp - 0x10], 0xc
jmp 0x1002ec04
inc dword [ebp - 0x2e0]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff2
jg 0x1002ebfb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x1002ebbb
lea ecx, [ebp - 0x678]
mov byte [ebp - 4], 7
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x1002eef8
mov dword [ebp - 0x1c], 0xe3245f1d
mov dword [ebp - 0x3c], 0x7af9ca3
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
imul eax, eax, 0xffff
cmp eax, dword [ebp - 0x1c]
je 0x1002ecef
mov dword [ebp - 0x20], 0xaf066b7a
xor eax, eax
mov dword [ebp - 0x38], edi
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x1002ec78
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
mov dword [ebp - 0x1c], 0x11
jmp 0x1002ece4
mov dword [ebp - 0x10], 0xfff7
mov dword [ebp - 0x38], 0xf1d4b082
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0xd2e819d3
jb 0x1002eca7
mov ecx, edi
cmp dword [ebp - 0x1c], eax
jne 0x1002eca9
mov ecx, eax
xor eax, eax
test ecx, ecx
sete al
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
add eax, 0xb6adce06
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
je 0x1002ecd2
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1c
jne 0x1002ec81
jmp 0x1002edc5
push 2
lea ecx, [ebp - 0x6f0]
call fcn.1001540a
xor eax, eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jge 0x1002ed2a
push dword [ebp - 0x10]
lea ecx, [ebp - 0x6f0]
call fcn.10015477
mov dword [eax], 0x9501
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1002ed0b
xor eax, eax
mov dword [ebp - 0x1c], 0xfffffff4
jmp 0x1002ed6a
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002ed45
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002ed67
push 0xb75
push 0x23e0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EnableScrollBar]
xor eax, eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1b
jg 0x1002ed33
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], edi
jg 0x1002edb6
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x1c], eax
jl 0x1002eda9
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6f0]
call fcn.10015477
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x6f0]
mov esi, eax
call fcn.10015477
mov ecx, dword [esi]
mov dword [eax], ecx
dec dword [ebp - 0x1c]
jns 0x1002ed80
xor eax, eax
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jle 0x1002ed78
mov esi, 0xfffa
lea ecx, [ebp - 0x6f0]
mov byte [ebp - 4], 7
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x1002eeec
push 6
pop eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x828]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x34], 0x3e623b47
mov dword [ebp - 0x24], 0x7a5eafb5
push 2
call fcn.1001540a
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x28], 0x3f5e
push 8
pop eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x10], eax
jmp 0x1002ee28
push dword [ebp - 0x10]
lea ecx, [ebp - 0x828]
call fcn.10015477
mov dword [eax], 0x7f4ea14c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1002ee11
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setge dl
xor eax, eax
cmp edx, 0xc895
setl al
neg eax
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffffb
setle cl
xor eax, eax
cmp ecx, 7
setle al
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x28]
cmp eax, ecx
jg 0x1002ee7a
mov esi, edi
jmp 0x1002ee7e
xor eax, eax
mov esi, eax
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x828]
mov eax, dword [ebp - 0x38]
xor eax, eax
push eax
call fcn.10015477
mov ecx, dword [ebp - 0x10]
xor edx, edx
test ecx, ecx
mov ecx, dword [ebp - 0x44]
sets dl
neg ecx
mov dword [eax], edx
lea eax, [esi + 0xffff]
sbb ecx, ecx
neg ecx
cmp eax, ecx
jne 0x1002eebc
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x1002eebe
mov ecx, edi
jmp 0x1002eec0
xor eax, eax
mov ecx, eax
xor eax, eax
cmp ecx, 0x1af6
lea ecx, [ebp - 0x828]
sete al
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 7
call fcn.10015472
mov dword [ebp - 0x40], 0xfffffffb
mov esi, 0xfffa
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jle 0x1002edcf
inc dword [ebp - 0x4c]
mov esi, 0xfffa
cmp dword [ebp - 0x4c], edi
jle 0x1002ec2c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x544]
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x28], 0xc4ab274b
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x4a0]
mov dword [ebp - 0x50], 0xfffffffe
push 2
call fcn.1001540a
mov dword [ebp - 4], 0x10
mov esi, 0x15b01d97
mov dword [ebp - 0x3c], 0xfffd
xor eax, eax
mov dword [ebp - 0x10], 0xabefa025
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x10], eax
jmp 0x1002ef6a
push dword [ebp - 0x10]
call fcn.10015477
mov dword [eax], 0xdae4f9db
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
lea ecx, [ebp - 0x4a0]
jl 0x1002ef59
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
xor eax, eax
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x4a0]
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x4a0]
push eax
call fcn.10015477
xor edx, edx
cmp dword [eax], edx
mov eax, dword [ebp - 0x3c]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
neg eax
cmp eax, edi
mov eax, dword [ebp - 0x3c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
add ecx, dword [ebp - 0x34]
je 0x1002efe4
mov edx, edi
cmp dword [ebp - 0x34], eax
jne 0x1002efe6
mov edx, eax
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, ebx
mov eax, 0xffff
setle cl
imul ecx, edx
cmp ecx, eax
jbe 0x1002f007
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x1002f009
mov edx, edi
jmp 0x1002f00b
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], eax
jmp 0x1002f036
mov dword [ebp - 0x20], eax
jmp 0x1002f02e
mov dword [ebp - 0x28], 0xfffffffb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jle 0x1002f024
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jle 0x1002f01f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4a0]
call fcn.10015472
xor eax, eax
mov dword [ebp - 0x28], 0xc4ab274b
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x5a0]
mov dword [ebp - 0x50], 0xfffffffe
push 2
call fcn.1001540a
mov dword [ebp - 4], 0x11
xor eax, eax
mov dword [ebp - 0x3c], 0xfffd
mov dword [ebp - 0x10], 0xabefa025
mov dword [ebp - 0x34], esi
push 2
mov dword [ebp - 0x10], eax
pop esi
jmp 0x1002f09d
push dword [ebp - 0x10]
call fcn.10015477
mov dword [eax], 0xdae4f9db
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x5a0]
cmp dword [ebp - 0x10], esi
jl 0x1002f08c
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
xor eax, eax
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x5a0]
push eax
call fcn.10015477
xor eax, eax
lea ecx, [ebp - 0x5a0]
push eax
call fcn.10015477
xor edx, edx
cmp dword [eax], edx
mov eax, dword [ebp - 0x3c]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
neg eax
cmp eax, edi
mov eax, dword [ebp - 0x3c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
add ecx, dword [ebp - 0x34]
je 0x1002f116
mov edx, edi
cmp dword [ebp - 0x34], eax
jne 0x1002f118
mov edx, eax
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, ebx
mov eax, 0xffff
setle cl
imul ecx, edx
cmp ecx, eax
jbe 0x1002f139
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x1002f13b
mov edx, edi
jmp 0x1002f13d
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], eax
jmp 0x1002f168
mov dword [ebp - 0x20], eax
jmp 0x1002f160
mov dword [ebp - 0x28], 0xfffffffb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jle 0x1002f156
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jle 0x1002f151
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a0]
call fcn.10015472
mov dword [ebp - 0x1c], 0xfd41
mov eax, 0xe216
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002f1b9
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x170], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002f1a5
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x1002f1cd
mov dword [ebp - 0x34], 0xd9a924c0
dec dword [ebp - 0x34]
jmp 0x1002f342
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x17
jle 0x1002f2a0
mov dword [ebp - 0x10], 0xf9c7
mov dword [ebp - 0x30], 0x10f1939
mov dword [ebp - 0x34], 0x98934ec
mov dword [ebp - 0x38], 0x264a3a20
mov eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
neg eax
imul eax, eax, 0xb09c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
xor eax, eax
imul ecx, dword [ebp - 0x170]
test ecx, ecx
je 0x1002f22e
mov ecx, edi
cmp dword [ebp - 0x10], eax
jne 0x1002f230
mov ecx, eax
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x170]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setl dl
sub edx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x1002f279
cmp dword [ebp - 0x30], eax
je 0x1002f279
mov eax, edi
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x170]
setge dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x38], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x17
jg 0x1002f1e1
xor eax, eax
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x20], eax
jl 0x1002f342
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x1002f339
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x1002f2df
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x774], 0x9ab67338
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1002f2c7
mov dword [ebp - 0x18], eax
jmp 0x1002f329
dec dword [ebp - 0x20]
jns 0x1002f2b0
mov ebx, dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x1002f35b
push 0x854
push eax
call ebx
xor eax, eax
mov dword [ebp - 0x1c], 0xfd41
mov ecx, 0xe216
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jge 0x1002f396
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x17c], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1002f382
cmp dword [ebp - 0x1c], eax
je 0x1002f3aa