Function at 0x10030467
Capabilities:
Allocate thread local storage
Check os version
Enumerate files on windows
Enumerate gui resources
Get common file path
Get file size
Get file system object information
Get graphical window text
Get memory capacity
Identify system language via api
Parse pe header
Read .ini file
Set registry value
Set thread local storage value

Disassembly:
mov eax, 0x1008baa2
call fcn.1008a1b8
mov eax, 0x1834
call fcn.10072e60
push ebx
push esi
push edi
lea eax, [ebp - 0x11f4]
mov dword [ebp - 0x68], ecx
push eax
lea eax, [ebp - 0x1204]
mov dword [ebp - 0x4c], 0
xorps xmm0, xmm0
mov byte [ebp - 0x85], dl
push eax
lea ecx, [ebp - 0x151c]
movdqu xmmword [ebp - 0x1204], xmm0
call fcn.100170f9
lea ecx, [ebp - 0x2fd]
mov esi, eax
call fcn.1000ab93
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x570]
push dword [esi]
call fcn.100170a8
push 4
xor eax, eax
lea ecx, [ebp - 0xbf8]
mov dword [ebp - 4], eax
or edi, 0xffffffff
pop ebx
mov dword [ebp - 0x3c], 0x35a23e86
mov dword [ebp - 0x54], edi
push ebx
call fcn.1001704c
xor eax, eax
inc eax
mov byte [ebp - 4], al
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x34], 0xbd2e
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10030537
push dword [ebp - 0x10]
lea ecx, [ebp - 0xbf8]
call fcn.100170ea
mov dword [eax], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10030519
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x1003054d
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1304], 0xe961cae4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x1003053c
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x570]
xor ebx, ebx
inc ebx
push ebx
call fcn.100170ea
push 3
pop esi
push esi
mov eax, dword [eax]
lea ecx, [ebp - 0x570]
mov dword [ebp - 0x3c], eax
call fcn.100170ea
cmp dword [eax], 0
je 0x10030594
xor eax, eax
lea ecx, [ebp - 0x570]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x10030594
mov eax, ebx
jmp 0x10030596
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x570]
mov eax, dword [ebp - 0x3c]
push esi
call fcn.100170ea
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0xbf8]
mov eax, dword [ebp - 0x54]
push esi
call fcn.100170ea
push esi
lea ecx, [ebp - 0x570]
mov dword [eax], 0x9c27
call fcn.100170ea
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp dword [ebp - 0x54], eax
je 0x100305de
lea esi, [eax + 1]
jmp 0x100305e0
mov esi, eax
push 3
lea ecx, [ebp - 0x570]
call fcn.100170ea
mov ecx, dword [ebp - 0x4c]
xor edx, edx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
cmp ecx, dword [eax]
setl dl
cmp edx, esi
mov esi, dword [sym.imp.USER32.dll_GetDC]
jne 0x10030656
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x100306bf
push 0xc49
push 0x1950
push 0x9ba
push 0xc5c
push 0x14b9
call ebx
push eax
call esi
push eax
push 0x4d5
push 0x960
push 0xf34
push 0x12d0
call ebx
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x100306bf
mov dword [ebp - 0x44], 0xdf04
xor eax, eax
mov dword [ebp - 0x34], 0x40ee1d45
inc eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10030691
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1800], 0x47d17017
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10030678
xor eax, eax
cmp dword [ebp - 0x44], eax
mov byte [ebp - 0x2d], al
je 0x100306a6
cmp byte [ebp - 0x2d], cl
je 0x100306b9
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
jmp 0x100306b9
cmp byte [ebp - 0x2d], cl
je 0x100306b9
push 0x23e5
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
dec dword [ebp - 0x12fc]
lea ecx, [ebp - 0xbf8]
call fcn.100170ce
lea ecx, [ebp - 0x570]
mov dword [ebp - 4], edi
call fcn.100170ce
xor eax, eax
mov dword [ebp - 0x34], 0x7f825e7a
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x1003070b
push 0xb65
push 0xdfe
push 0x26d9
push 0x17d5
call ebx
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_Ellipse]
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10030721
push eax
call ebx
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
push 2
pop esi
push esi
lea ecx, [ebp - 0x988]
call fcn.1001704c
mov dword [ebp - 4], esi
xor eax, eax
mov dword [ebp - 0x1c], 0x9bdba76a
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x1003075f
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x988]
call fcn.100170ea
and dword [eax], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10030744
xor eax, eax
xor esi, esi
inc esi
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], eax
jl 0x10030795
push eax
lea ecx, [ebp - 0x988]
call fcn.100170ea
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x988]
mov esi, eax
call fcn.100170ea
mov ecx, dword [esi]
push 0
mov dword [eax], ecx
dec dword [ebp - 0x1c]
pop eax
jns 0x1003076a
xor esi, esi
inc esi
lea ecx, [ebp - 0x988]
mov dword [ebp - 4], edi
call fcn.100170ce
mov dword [ebp - 0x10], 0xa3367f5e
lea ecx, [ebp - 0x328]
push 2
call fcn.1001704c
mov dword [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x24], 0xf7398071
mov dword [ebp - 0x28], 0xba8a7e8b
mov dword [ebp - 0x1c], eax
jmp 0x100307ea
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x328]
call fcn.100170ea
mov dword [eax], 0x8fbdedbe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x100307d3
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0x38dc5336
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10030aa3
mov dword [ebp - 0x2c], 0x9cb0
mov dword [ebp - 0x20], 0xc245e320
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x1c], eax
jmp 0x10030837
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6e0], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1003082a
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x10030850
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x6dc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
push esi
call fcn.100170ea
xor eax, eax
lea ecx, [ebp - 0x328]
push eax
call fcn.100170ea
xor ebx, ebx
lea ecx, [ebp - 0x328]
push esi
cmp dword [eax], ebx
setl bl
call fcn.100170ea
xor ecx, ecx
cmp ebx, dword [eax]
setge cl
cmp ecx, 0x43a1
jge 0x100308a5
xor eax, eax
cmp dword [ebp - 0x6dc], eax
je 0x100308a7
mov eax, esi
xor ebx, ebx
lea ecx, [ebp - 0x328]
cmp eax, 0x5bfe
sete bl
xor eax, eax
push eax
call fcn.100170ea
mov ecx, dword [ebp - 0x24]
xor edx, edx
add ecx, ebx
neg ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setge dl
xor eax, eax
add edx, dword [ebp - 0x20]
cmp edx, 0xc77e
setle al
cmp eax, dword [ebp - 0x2c]
jg 0x100308ef
xor eax, eax
cmp dword [ebp - 0x6dc], eax
je 0x100308f1
mov eax, esi
cmp eax, dword [ebp - 0x2c]
jne 0x10030913
xor eax, eax
lea ecx, [ebp - 0x328]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x10030913
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x10030917
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x2c]
neg eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, 0x14efc71
setne cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0xfffffff5
jmp 0x10030a31
xor eax, eax
mov dword [ebp - 0x20], 6
push esi
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x1c], eax
call fcn.100170ea
cmp dword [eax], 0
jne 0x10030995
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jne 0x10030995
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x6dc]
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x10030995
mov esi, eax
inc eax
jmp 0x1003099a
xor eax, eax
inc eax
mov esi, eax
push eax
lea ecx, [ebp - 0x328]
call fcn.100170ea
mov ecx, dword [ebp - 0x2c]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x328]
setg dl
mov dword [eax], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6dc]
mov esi, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.100170ea
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x1c]
cmp esi, eax
mov edx, dword [ebp - 0x2c]
sete cl
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xbbd8
setle al
xor ecx, ecx
cmp eax, 0x6f27
setl cl
imul ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x10030a05
mov eax, dword [ebp - 0x6dc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6dc]
mov eax, dword [ebp - 0x6dc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x28]
xor eax, eax
inc eax
push eax
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x24]
pop esi
cmp dword [ebp - 0x24], 0xfffffff4
jg 0x1003094d
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [ebp - 0x328]
mov dword [ebp - 4], edi
call fcn.100170ce
push 3
lea ecx, [ebp - 0xe5c]
call fcn.1001704c
mov dword [ebp - 4], 4
xor eax, eax
mov dword [ebp - 0x20], 0x2667a876
mov dword [ebp - 0x60], 0xf094
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10030a9b
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xe5c]
call fcn.100170ea
mov dword [eax], 0xfdf99ff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10030a7c
xor eax, eax
push 2
mov dword [ebp - 0x20], eax
pop esi
jmp 0x10030aef
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10030a41
push 0x564
push eax
push eax
push 0x1925
push eax
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
jmp 0x10030a41
mov dword [ebp - 0x3c], 0x6a485bf2
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x3c], eax
jl 0x10030ae9
push dword [ebp - 0x20]
lea ecx, [ebp - 0xe5c]
call fcn.100170ea
cmp dword [eax], 0
jne 0x10030ae7
dec dword [ebp - 0x3c]
jns 0x10030acf
xor eax, eax
inc dword [ebp - 0x60]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x10030ac0
lea ecx, [ebp - 0xe5c]
mov dword [ebp - 4], edi
call fcn.100170ce
xor esi, esi
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x20], 0xfffffff2
inc esi
cmp dword [ebp - 0x20], 0x1a
jl 0x10030ba5
mov dword [ebp - 0x44], 0x5ba7723
lea ecx, [ebp - 0xfd4]
push 2
call fcn.1001704c
push 5
pop eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x10030b60
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xfd4]
call fcn.100170ea
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10030b45
xor eax, eax
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x3c], eax
jl 0x10030b77
mov dword [ebp - 0x60], 0x8adae8c9
inc dword [ebp - 0x60]
dec dword [ebp - 0x3c]
jns 0x10030b68
lea ecx, [ebp - 0xfd4]
mov dword [ebp - 4], edi
call fcn.100170ce
xor eax, eax
mov dword [ebp - 0x44], 6
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10030b9d
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc dword [ebp - 0x20]
jmp 0x10030b13
mov dword [ebp - 0x1c], 0xfb871c7b
xor eax, eax
mov dword [ebp - 0x34], 0x5610a143
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x10030bd7
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1614], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10030bbe
xor eax, eax
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x10030c10
mov dword [ebp - 0x34], 0xba13b288
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10030bfe
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov eax, dword [ebp - 0x1c]
push 0
mov dword [ebp + eax*4 - 0x1614], esi
dec dword [ebp - 0x1c]
pop eax
jns 0x10030be3
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10030c2e
push eax
push eax
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateEnhMetaFileW]
xor eax, eax
mov dword [ebp - 0x20], 0x824a8c6a
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10030c4a
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
xor eax, eax
mov dword [ebp - 0x20], 0xfffffff5
jmp 0x10030c6c
mov dword [ebp - 0x44], eax
xor edx, edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
push 0
setg dl
mov dword [ebp - 0x44], edx
dec dword [ebp - 0x20]
pop eax
cmp dword [ebp - 0x20], 0xffffffeb
je 0x10030c53
mov dword [ebp - 0x10], 0xa3367f5e
lea ecx, [ebp - 0x340]
push 2
call fcn.1001704c
mov dword [ebp - 4], 6
xor eax, eax
mov dword [ebp - 0x24], 0xf7398071
mov dword [ebp - 0x28], 0xba8a7e8b
mov dword [ebp - 0x1c], eax
jmp 0x10030cb9
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x340]
call fcn.100170ea
mov dword [eax], 0x8fbdedbe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10030ca2
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0x38dc5336
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x10030f0c
mov dword [ebp - 0x2c], 0x9cb0
mov dword [ebp - 0x20], 0xc245e320
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x1c], eax
jmp 0x10030d06
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6d0], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10030cf9
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x10030d1f
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x340]
mov dword [ebp - 0x6cc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
push esi
call fcn.100170ea
xor eax, eax
lea ecx, [ebp - 0x340]
push eax
call fcn.100170ea
xor ebx, ebx
lea ecx, [ebp - 0x340]
push esi
cmp dword [eax], ebx
setl bl
call fcn.100170ea
xor ecx, ecx
cmp ebx, dword [eax]
setge cl
cmp ecx, 0x43a1
jge 0x10030d74
xor eax, eax
cmp dword [ebp - 0x6cc], eax
je 0x10030d76
mov eax, esi
xor ebx, ebx
lea ecx, [ebp - 0x340]
cmp eax, 0x5bfe
sete bl
xor eax, eax
push eax
call fcn.100170ea
mov ecx, dword [ebp - 0x24]
xor edx, edx
add ecx, ebx
neg ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setge dl
xor eax, eax
add edx, dword [ebp - 0x20]
cmp edx, 0xc77e
setle al
cmp eax, dword [ebp - 0x2c]
jg 0x10030dbe
xor eax, eax
cmp dword [ebp - 0x6cc], eax
je 0x10030dc0
mov eax, esi
cmp eax, dword [ebp - 0x2c]
jne 0x10030de2
xor eax, eax
lea ecx, [ebp - 0x340]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x10030de2
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x10030de6
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x2c]
neg eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, 0x14efc71
setne cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0xfffffff5
jmp 0x10030f00
xor eax, eax
mov dword [ebp - 0x20], 6
push esi
lea ecx, [ebp - 0x340]
mov dword [ebp - 0x1c], eax
call fcn.100170ea
cmp dword [eax], 0
jne 0x10030e64
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jne 0x10030e64
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x6cc]
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x10030e64
mov esi, eax
inc eax
jmp 0x10030e69
xor eax, eax
inc eax
mov esi, eax
push eax
lea ecx, [ebp - 0x340]
call fcn.100170ea
mov ecx, dword [ebp - 0x2c]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x340]
setg dl
mov dword [eax], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6cc]
mov esi, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.100170ea
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x1c]
cmp esi, eax
mov edx, dword [ebp - 0x2c]
sete cl
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xbbd8
setle al
xor ecx, ecx
cmp eax, 0x6f27
setl cl
imul ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x10030ed4
mov eax, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x28]
xor eax, eax
inc eax
push eax
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x24]
pop esi
cmp dword [ebp - 0x24], 0xfffffff4
jg 0x10030e1c
jmp 0x10030f27
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10030f27
push 0x564
push eax
push eax
push 0x1925
push eax
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
lea ecx, [ebp - 0x340]
mov dword [ebp - 4], edi
call fcn.100170ce
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor eax, eax
mov dword [ebp - 0x34], 0x7f825e7a
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10030f72
push 0xb65
push 0xdfe
push 0x26d9
push 0x17d5
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Ellipse]
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10030f8e
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
xor eax, eax
mov dword [ebp - 0x40], 3
lea ecx, [ebp - 0x1664]
mov dword [ebp - 0x4c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x1214]
push eax
lea eax, [ebp - 0x1224]
push eax
movdqu xmmword [ebp - 0x1224], xmm0
call fcn.100170f9
lea ecx, [ebp - 0x201]
mov esi, eax
call fcn.1000ab93
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x588]
push dword [esi]
call fcn.100170a8
mov dword [ebp - 4], 7
lea ecx, [ebp - 0xb74]
mov dword [ebp - 0x3c], 0x35a23e86
mov dword [ebp - 0x54], edi
push 4
call fcn.1001704c
mov byte [ebp - 4], 8
xor esi, esi
mov dword [ebp - 0x44], 0xfffffffe
inc esi
mov dword [ebp - 0x34], 0xbd2e
xor eax, eax
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x10031041
push dword [ebp - 0x10]
lea ecx, [ebp - 0xb74]
call fcn.100170ea
mov dword [eax], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10031022
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10031057
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1384], 0xe961cae4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10031046
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x588]
push esi
call fcn.100170ea
push 3
lea ecx, [ebp - 0x588]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
call fcn.100170ea
cmp dword [eax], 0
je 0x1003109a
xor eax, eax
lea ecx, [ebp - 0x588]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x1003109a
mov eax, esi
jmp 0x1003109c
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x588]
mov eax, dword [ebp - 0x3c]
push 3
call fcn.100170ea
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0xb74]
mov eax, dword [ebp - 0x54]
push 3
call fcn.100170ea
push 3
lea ecx, [ebp - 0x588]
mov dword [eax], 0x9c27
call fcn.100170ea
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp dword [ebp - 0x54], eax
je 0x100310e7
lea esi, [eax + 1]
jmp 0x100310e9
mov esi, eax
push 3
lea ecx, [ebp - 0x588]
call fcn.100170ea
mov ecx, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, dword [eax]
setl dl
xor eax, eax
cmp edx, esi
jne 0x100311c7
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10031157
push 0xc49
push 0x1950
push 0x9ba
push 0xc5c
push 0x14b9
call ebx
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x4d5
push 0x960
push 0xf34
push 0x12d0
call ebx
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_StretchBlt]
xor esi, esi
inc esi
lea ecx, [ebp - 0xb74]
call fcn.100170ce
lea ecx, [ebp - 0x588]
mov dword [ebp - 4], edi
call fcn.100170ce
push 3
lea ecx, [ebp - 0xcf4]
call fcn.1001704c
mov dword [ebp - 4], 9
xor eax, eax
mov dword [ebp - 0x20], 0x2667a876
mov dword [ebp - 0x60], 0xf094
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x100311bf
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xcf4]
call fcn.100170ea
mov dword [eax], 0xfdf99ff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100311a0
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x10031268
mov dword [ebp - 0x44], 0xdf04
xor esi, esi
mov dword [ebp - 0x34], 0x40ee1d45
inc esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10031200
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x17e8], 0x47d17017
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100311e7
xor eax, eax
cmp dword [ebp - 0x44], eax
mov byte [ebp - 0x2d], al
je 0x10031216
cmp byte [ebp - 0x2d], 0
je 0x1003122a
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
jmp 0x1003122a
cmp byte [ebp - 0x2d], 0
je 0x1003122a
push 0x23e5
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
dec dword [ebp - 0x137c]
jmp 0x1003115a
mov dword [ebp - 0x3c], 0x6a485bf2
mov dword [ebp - 0x3c], 2
cmp dword [ebp - 0x3c], eax
jl 0x10031262
push dword [ebp - 0x20]
lea ecx, [ebp - 0xcf4]
call fcn.100170ea
cmp dword [eax], 0
jne 0x10031260
dec dword [ebp - 0x3c]
jns 0x10031248
xor eax, eax
inc dword [ebp - 0x60]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x10031235
lea ecx, [ebp - 0xcf4]
mov dword [ebp - 4], edi
call fcn.100170ce
push 2
lea ecx, [ebp - 0xa9c]
call fcn.1001704c
mov dword [ebp - 4], 0xa
xor eax, eax
mov dword [ebp - 0x1c], 0x9bdba76a
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x100312be
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa9c]
call fcn.100170ea
and dword [eax], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x100312a2
xor eax, eax
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], eax
jl 0x100312f1
push eax
lea ecx, [ebp - 0xa9c]
call fcn.100170ea
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa9c]
mov esi, eax
call fcn.100170ea
mov ecx, dword [esi]
push 0
mov dword [eax], ecx
dec dword [ebp - 0x1c]
pop eax
jns 0x100312c6
xor esi, esi
inc esi
lea ecx, [ebp - 0xa9c]
mov dword [ebp - 4], edi
call fcn.100170ce
mov dword [ebp - 0x40], 0xfffffff2
jmp 0x100319ff
push 2
lea ecx, [ebp - 0x11bc]
call fcn.1001704c
mov dword [ebp - 4], 0xb
xor eax, eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x10031348
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x11bc]
call fcn.100170ea
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1003132d
xor eax, eax
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x3c], eax
jl 0x1003135f
mov dword [ebp - 0x60], 0x8adae8c9
inc dword [ebp - 0x60]
dec dword [ebp - 0x3c]
jns 0x10031350
lea ecx, [ebp - 0x11bc]
mov dword [ebp - 4], edi
call fcn.100170ce
mov dword [ebp - 0x44], 0x5ba7723
xor eax, eax
mov dword [ebp - 0x1c], 0xfb871c7b
mov dword [ebp - 0x34], 0x5610a143
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x100313a6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x162c], 0xfffffffd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1003138d
xor eax, eax
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x100313df
mov dword [ebp - 0x34], 0xba13b288
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x100313cd
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov eax, dword [ebp - 0x1c]
push 0
mov dword [ebp + eax*4 - 0x162c], esi
dec dword [ebp - 0x1c]
pop eax
jns 0x100313b2
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x100313fd
push eax
push eax
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateEnhMetaFileW]
xor eax, eax
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x20], 0x824a8c6a
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10031420
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
xor eax, eax
mov dword [ebp - 0x20], 0xfffffff5
jmp 0x10031442
mov dword [ebp - 0x44], eax
xor edx, edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
push 0
setg dl
mov dword [ebp - 0x44], edx
dec dword [ebp - 0x20]
pop eax
cmp dword [ebp - 0x20], 0xffffffeb
je 0x10031429
xor eax, eax
lea ecx, [ebp - 0x1594]
mov dword [ebp - 0x4c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x1234]
push eax
lea eax, [ebp - 0x1244]
push eax
movdqu xmmword [ebp - 0x1244], xmm0
call fcn.100170f9
lea ecx, [ebp - 0x239]
mov esi, eax
call fcn.1000ab93
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x5a0]
push dword [esi]
call fcn.100170a8
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0xb8c]
mov dword [ebp - 0x3c], 0x35a23e86
mov dword [ebp - 0x54], edi
push 4
call fcn.1001704c
mov byte [ebp - 4], 0xd
xor esi, esi
mov dword [ebp - 0x44], 0xfffffffe
inc esi
mov dword [ebp - 0x34], 0xbd2e
xor eax, eax
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x100314f6
push dword [ebp - 0x10]
lea ecx, [ebp - 0xb8c]
call fcn.100170ea
mov dword [eax], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100314d7
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x1003150c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1324], 0xe961cae4
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100314fb
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x5a0]
push esi
call fcn.100170ea
push 3
lea ecx, [ebp - 0x5a0]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
call fcn.100170ea
cmp dword [eax], 0
je 0x1003154f
xor eax, eax
lea ecx, [ebp - 0x5a0]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x1003154f
mov eax, esi
jmp 0x10031551
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x5a0]
mov eax, dword [ebp - 0x3c]
push 3
call fcn.100170ea
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0xb8c]
mov eax, dword [ebp - 0x54]
push 3
call fcn.100170ea
push 3
lea ecx, [ebp - 0x5a0]
mov dword [eax], 0x9c27
call fcn.100170ea
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp dword [ebp - 0x54], eax
je 0x1003159c
lea esi, [eax + 1]
jmp 0x1003159e
mov esi, eax
push 3
lea ecx, [ebp - 0x5a0]
call fcn.100170ea
mov ecx, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, dword [eax]
setl dl
xor eax, eax
cmp edx, esi
jne 0x100316ec
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x1003160c
push 0xc49
push 0x1950
push 0x9ba
push 0xc5c
push 0x14b9
call ebx
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x4d5
push 0x960
push 0xf34
push 0x12d0
call ebx
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_StretchBlt]
xor esi, esi
inc esi
lea ecx, [ebp - 0xb8c]
call fcn.100170ce
lea ecx, [ebp - 0x5a0]
mov dword [ebp - 4], edi
call fcn.100170ce
push 2
pop ebx
xor eax, eax
lea ecx, [ebp - 0x994]
mov byte [ebp - 0x2d], al
push ebx
call fcn.1001704c
mov dword [ebp - 4], 0xe
xor eax, eax
mov dword [ebp - 0x1c], 0x9bdba76a
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x1003166f
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x994]
call fcn.100170ea
and dword [eax], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10031654
xor eax, eax
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], eax
jl 0x100316a2
push eax
lea ecx, [ebp - 0x994]
call fcn.100170ea
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x994]
mov esi, eax
call fcn.100170ea
mov ecx, dword [esi]
push 0
mov dword [eax], ecx
dec dword [ebp - 0x1c]
pop eax
jns 0x10031677
xor esi, esi
inc esi
lea ecx, [ebp - 0x994]
mov dword [ebp - 4], edi
call fcn.100170ce
cmp byte [ebp - 0x2d], 0
je 0x100319f3
mov dword [ebp - 0x10], 0xa3367f5e
lea ecx, [ebp - 0x334]
push ebx
call fcn.1001704c
mov dword [ebp - 4], 0xf
xor eax, eax
mov dword [ebp - 0x24], 0xf7398071
mov dword [ebp - 0x28], 0xba8a7e8b
mov dword [ebp - 0x1c], eax
jmp 0x1003176f
mov dword [ebp - 0x44], 0xdf04
xor esi, esi
mov dword [ebp - 0x34], 0x40ee1d45
inc esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10031725
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x177c], 0x47d17017
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1003170c
xor eax, eax
cmp dword [ebp - 0x44], eax
mov byte [ebp - 0x2d], al
je 0x1003173a
cmp byte [ebp - 0x2d], cl
je 0x1003174d
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
jmp 0x1003174d
cmp byte [ebp - 0x2d], cl
je 0x1003174d
push 0x23e5
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindow]
dec dword [ebp - 0x131c]
jmp 0x1003160f
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x334]
call fcn.100170ea
mov dword [eax], 0x8fbdedbe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10031758
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0x38dc5336
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x100319c1
mov dword [ebp - 0x2c], 0x9cb0
mov dword [ebp - 0x20], 0xc245e320
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x1c], eax
jmp 0x100317bb
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6f0], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x100317ae
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x100317d4
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x334]
mov dword [ebp - 0x6ec], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
push esi
call fcn.100170ea
xor eax, eax
lea ecx, [ebp - 0x334]
push eax
call fcn.100170ea
xor ebx, ebx
lea ecx, [ebp - 0x334]
push esi
cmp dword [eax], ebx
setl bl
call fcn.100170ea
xor ecx, ecx
cmp ebx, dword [eax]
setge cl
cmp ecx, 0x43a1
jge 0x10031829
xor eax, eax
cmp dword [ebp - 0x6ec], eax
je 0x1003182b
mov eax, esi
xor ebx, ebx
lea ecx, [ebp - 0x334]
cmp eax, 0x5bfe
sete bl
xor eax, eax
push eax
call fcn.100170ea
mov ecx, dword [ebp - 0x24]
xor edx, edx
add ecx, ebx
neg ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setge dl
xor eax, eax
add edx, dword [ebp - 0x20]
cmp edx, 0xc77e
setle al
cmp eax, dword [ebp - 0x2c]
jg 0x10031873
xor eax, eax
cmp dword [ebp - 0x6ec], eax
je 0x10031875
mov eax, esi
cmp eax, dword [ebp - 0x2c]
jne 0x10031897
xor eax, eax
lea ecx, [ebp - 0x334]
push eax
call fcn.100170ea
cmp dword [eax], 0
je 0x10031897
xor eax, eax
xor esi, esi
inc esi
lea ecx, [eax + 1]
jmp 0x1003189b
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x2c]
neg eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, 0x14efc71
setne cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0xfffffff5
jmp 0x100319b5
xor eax, eax
mov dword [ebp - 0x20], 6
push esi
lea ecx, [ebp - 0x334]
mov dword [ebp - 0x1c], eax
call fcn.100170ea
cmp dword [eax], 0
jne 0x10031919
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jne 0x10031919
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x6ec]
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x10031919
mov esi, eax
inc eax
jmp 0x1003191e
xor eax, eax
inc eax
mov esi, eax
push eax
lea ecx, [ebp - 0x334]
call fcn.100170ea
mov ecx, dword [ebp - 0x2c]
xor edx, edx
cmp esi, ecx
lea ecx, [ebp - 0x334]
setg dl
mov dword [eax], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x6ec]
mov esi, dword [ebp - 0x20]
xor eax, eax
push eax
call fcn.100170ea
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x1c]
cmp esi, eax
mov edx, dword [ebp - 0x2c]
sete cl
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xbbd8
setle al
xor ecx, ecx
cmp eax, 0x6f27
setl cl
imul ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x10031989
mov eax, dword [ebp - 0x6ec]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6ec]
mov eax, dword [ebp - 0x6ec]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x28]
xor eax, eax
inc eax
push eax
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x24]
pop esi
cmp dword [ebp - 0x24], 0xfffffff4
jg 0x100318d1
jmp 0x100319dc
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x100319dc
push 0x564
push eax
push eax
push 0x1925
push eax
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
lea ecx, [ebp - 0x334]
mov dword [ebp - 4], edi
call fcn.100170ce
xor eax, eax
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc dword [ebp - 0x40]
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 1
pop esi
cmp dword [ebp - 0x40], 0x1a
jge 0x1003130b
xor ebx, ebx
mov dword [ebp - 0x40], 0x15252cb1
inc ebx
lea ecx, [ebp - 0xba4]
push ebx
call fcn.1001704c
xor eax, eax
mov dword [ebp - 4], 0x10
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 3
jge 0x10031a46
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x498], ebx
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x10031a31
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], ebx
jge 0x10031a6c
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0xfbc], 0x3423637b
xor eax, eax
inc dword [ebp - 0x40]
inc eax
cmp dword [ebp - 0x40], eax
jl 0x10031a4e
xor ebx, ebx
xor eax, eax
inc ebx
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], ebx
jge 0x10031a98
push dword [ebp - 0x40]
lea ecx, [ebp - 0xba4]
call fcn.100170ea
mov dword [eax], 0xd0336d06
xor eax, eax
inc dword [ebp - 0x40]
inc eax
cmp dword [ebp - 0x40], eax
jl 0x10031a74
xor ebx, ebx
xor eax, eax
inc ebx
push 2
mov dword [ebp - 0x40], eax
pop esi
jmp 0x10031be3
push 4
lea ecx, [ebp - 0xdb4]
call fcn.1001704c
push ebx
lea ecx, [ebp - 0xfec]
mov byte [ebp - 4], 0x11
call fcn.1001704c
xor eax, eax
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jge 0x10031aee
push dword [ebp - 0x10]
lea ecx, [ebp - 0xdb4]
call fcn.100170ea
mov dword [eax], 0xbf118c84
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10031acf
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10031b07
push dword [ebp - 0x10]
lea ecx, [ebp - 0xfec]
call fcn.100170ea
and dword [eax], 0
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x10031af3
mov eax, dword [ebp - 0x40]
cmp dword [ebp + eax*4 - 0x498], 0
jne 0x10031b93
mov eax, dword [ebp - 0x40]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x498]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + eax*4 - 0x498]
cmp ecx, eax
mov eax, dword [ebp - 0x40]
setge dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x498]
cmp eax, edx
mov eax, dword [ebp - 0x40]
setg cl
sub ecx, dword [ebp + eax*4 - 0x498]
mov eax, dword [ebp - 0x40]
neg ecx
sbb ecx, ecx
mov edx, ecx
xor ecx, ecx
mov dword [ebp + eax*4 - 0x498], edx
mov eax, dword [ebp - 0x40]
cmp edx, eax
sete cl
xor eax, eax
inc eax
cmp ecx, eax
ja 0x10031b84
xor eax, eax
cmp dword [ebp - 0x40], eax
jne 0x10031b84
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + eax*4 - 0x498]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x40], eax
je 0x10031b9a
jmp 0x10031b95
xor eax, eax
cmp dword [ebp - 0x40], eax
jne 0x10031ba4
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + eax*4 - 0x498]
push 3
lea ecx, [ebp - 0xdb4]
call fcn.100170ea
lea ecx, [ebp - 0xba4]
dec dword [eax]
xor eax, eax
push eax
call fcn.100170ea
lea ecx, [ebp - 0xfec]
dec dword [eax]
call fcn.100170ce
lea ecx, [ebp - 0xdb4]
mov byte [ebp - 4], 0x10
call fcn.100170ce
inc dword [ebp - 0x40]
push 1
pop ebx
cmp dword [ebp - 0x40], esi
jle 0x10031aa3
lea ecx, [ebp - 0xba4]
mov dword [ebp - 4], edi
call fcn.100170ce
push 0xfffffffffffffffc
pop ebx
mov dword [ebp - 0x2c], ebx
lea ecx, [ebp - 0x10f4]
mov dword [ebp - 0x60], 6
xor eax, eax
mov dword [ebp - 0x34], 0x4186e145
inc eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x34], 0x42b4cf22
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0x46983c17
push esi
call fcn.1001704c
mov dword [ebp - 4], 0x13
xor eax, eax
push 5
mov dword [ebp - 0x34], eax
pop ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x10031c70
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x10f4]
call fcn.100170ea
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10031c56
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffff0
cmp dword [ebp - 0x2c], ebx
push 3
pop ebx
jne 0x10031d12
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
jmp 0x10031c9c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1430], 0xd9403132
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10031c8b
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
cmp eax, 0xdfbc43d3
push 0
setle cl
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x2c]
sub edx, eax
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setle cl
xor edx, edx
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setne dl
xor ecx, ecx
cmp eax, edx
pop eax
setne cl
mov dword [ebp - 0x1428], ecx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffffc
je 0x10031c83
inc dword [ebp - 0x48]
lea ecx, [ebp - 0x10f4]
mov dword [ebp - 4], edi
call fcn.100170ce
movdqa xmm0, xmmword [0x10009760]
lea eax, [ebp - 0x1254]
push eax
lea eax, [ebp - 0x1264]
mov dword [ebp - 0x40], 0x15252cb1
push eax
lea ecx, [ebp - 0x170c]
movdqu xmmword [ebp - 0x1264], xmm0
call fcn.100170f9
lea ecx, [ebp - 0x30e]
mov esi, eax
call fcn.1000ab93
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x1004]
push dword [esi]
call fcn.100170a8
push ebx
lea ecx, [ebp - 0x534]
mov dword [ebp - 4], 0x14
call fcn.1001704c
push ebx
lea ecx, [ebp - 0xd0c]
mov byte [ebp - 4], 0x15
call fcn.1001704c
xor eax, eax
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jge 0x10031dbc
push dword [ebp - 0x10]
lea ecx, [ebp - 0x534]
call fcn.100170ea
mov dword [eax], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031da2
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10031dd8
push dword [ebp - 0x10]
lea ecx, [ebp - 0xd0c]
call fcn.100170ea
mov dword [eax], 0x781ced8f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x10031dc1
push 2
pop esi
push esi
lea ecx, [ebp - 0x534]
call fcn.100170ea
xor ebx, ebx
mov dword [eax], ebx
jmp 0x10031e2d
push esi
lea ecx, [ebp - 0x534]
call fcn.100170ea
lea ecx, [ebp - 0x1004]
push dword [eax]
call fcn.100170ea
push esi
lea ecx, [ebp - 0xd0c]
mov dword [eax], 0x4f147909
call fcn.100170ea
push esi
lea ecx, [ebp - 0x534]
mov dword [eax], ebx
call fcn.100170ea
inc dword [eax]
push esi
lea ecx, [ebp - 0x534]
call fcn.100170ea
cmp dword [eax], 3
jle 0x10031df2
lea ecx, [ebp - 0xd0c]
call fcn.100170ce
lea ecx, [ebp - 0x534]
call fcn.100170ce
lea ecx, [ebp - 0x1004]
mov dword [ebp - 4], edi
call fcn.100170ce
push 3
lea ecx, [ebp - 0x9ac]
call fcn.1001704c
mov dword [ebp - 4], 0x17
xor ebx, ebx
mov dword [ebp - 0x10], 0xdada439b
inc ebx
xor eax, eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x10031ea9
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x9ac]
call fcn.100170ea
mov dword [eax], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10031e8e
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jg 0x10031ee7
mov dword [ebp - 0x44], 3
lea ecx, [ebp - 0x9ac]
push dword [ebp - 0x10]
call fcn.100170ea
push dword [ebp - 0x10]
lea ecx, [ebp - 0x9ac]
mov esi, eax
call fcn.100170ea
mov ecx, dword [esi]
push 2
pop esi
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x10031eb1
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10031f00
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x10031efd
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x11
jl 0x10031eec
lea ecx, [ebp - 0x9ac]
mov dword [ebp - 4], edi
call fcn.100170ce
push ebx
lea ecx, [ebp - 0xc1c]
call fcn.1001704c
mov dword [ebp - 4], 0x18
mov dword [ebp - 0x28], 0x90ac204e
mov dword [ebp - 0x58], 0xe9bf9f36
mov dword [ebp - 0x28], 0x13
cmp dword [ebp - 0x28], 0xfffffff1
jg 0x10031fb1
xor eax, eax
mov dword [ebp - 0x20], 0x197f0a2
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x10031f78
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8ac], 0x17ca
xor eax, eax
inc dword [ebp - 0x1c]
inc eax
cmp dword [ebp - 0x1c], eax
jl 0x10031f5a
xor ebx, ebx
xor eax, eax
inc ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x10031fa8
mov eax, dword [ebp - 0x20]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x8ac]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x58], ecx
dec dword [ebp - 0x20]
jns 0x10031f80
xor eax, eax
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff1
jle 0x10031f44
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x10031fce
push 0xe94
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
push 3
lea ecx, [ebp - 0xe14]
call fcn.1001704c
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1178]
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x34], 0x272a727
mov dword [ebp - 0x34], ebx
push 3
call fcn.1001704c
push esi
lea ecx, [ebp - 0xbbc]
mov byte [ebp - 4], 0x1a
call fcn.1001704c
xor eax, eax
mov byte [ebp - 4], 0x1b
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 3
jge 0x10032037
push dword [ebp - 0x40]
lea ecx, [ebp - 0xe14]
call fcn.100170ea
mov dword [eax], ebx
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x1003201c
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 3
jge 0x1003205f
push dword [ebp - 0x40]
lea ecx, [ebp - 0x1178]
call fcn.100170ea
mov dword [eax], 7
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x10032040
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], esi
jge 0x10032085
push dword [ebp - 0x40]
lea ecx, [ebp - 0xbbc]
call fcn.100170ea
mov dword [eax], 0xfffffff6
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], esi
jl 0x10032067
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x100320aa
mov dword [ebp - 0x60], 0xb3b9
lea ecx, [ebp - 0xe14]
inc dword [ebp - 0x60]
push dword [ebp - 0x20]
call fcn.100170ea
cmp dword [eax], 0
jne 0x100320af
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x1003208a
push ebx
lea ecx, [ebp - 0xbbc]
call fcn.100170ea
lea ecx, [ebp - 0xbbc]
inc dword [eax]
call fcn.100170ce
lea ecx, [ebp - 0x1178]
call fcn.100170ce
lea ecx, [ebp - 0xe14]
mov byte [ebp - 4], 0x18
call fcn.100170ce
xor eax, eax
push 3
mov dword [ebp - 0x40], eax
pop esi
jmp 0x100320f9
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x430], ebx
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], esi
jl 0x100320ec
push esi
lea ecx, [ebp - 0x95c]
call fcn.1001704c
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xbd4]
xor eax, eax
mov dword [ebp - 0x28], 0x2df3
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], eax
push esi
call fcn.1001704c
mov byte [ebp - 4], 0x1d
xor eax, eax
mov dword [ebp - 0x60], 0xa7f4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], esi
jge 0x1003215d
push dword [ebp - 0x10]
lea ecx, [ebp - 0x95c]
call fcn.100170ea
mov dword [eax], 0x4f2887cf
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1003213f
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x10032179
push dword [ebp - 0x10]
lea ecx, [ebp - 0xbd4]
call fcn.100170ea
mov dword [eax], 0x6fd43ddc
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10032162
xor esi, esi
lea ecx, [ebp - 0x95c]
inc esi
push esi
call fcn.100170ea
xor eax, eax
lea ecx, [ebp - 0x95c]
push eax
call fcn.100170ea
xor ecx, ecx
cmp dword [eax], esi
setg cl
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x28]
cmp eax, 0xfffffffc
setl cl
xor eax, eax
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x95c]
push eax
call fcn.100170ea
mov ecx, dword [ebp - 0x60]
xor edx, edx
cmp dword [eax], ecx
lea ecx, [ebp - 0xbd4]
sete dl
xor ebx, ebx
sub edx, 0x47169b95
cmp edx, 8
setg bl
xor eax, eax
push eax
call fcn.100170ea
mov ecx, dword [ebp - 0x28]
xor edx, edx
cmp ebx, ecx
setg dl
xor ecx, ecx
test edx, edx
sets cl
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1c
jl 0x1003227f
jmp 0x1003220c
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x1c], eax
jmp 0x10032221
xor eax, eax
inc eax
cmp dword [ebp - 0x1c], eax
jl 0x10032214
lea ecx, [ebp - 0xbd4]
call fcn.100170ce
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 0x18
call fcn.100170ce
xor eax, eax
mov dword [ebp - 0x40], eax
inc eax
cmp dword [ebp - 0x40], eax
jge 0x100322bd
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x10dc], 0x3423637b
xor eax, eax
inc dword [ebp - 0x40]
inc eax
cmp dword [ebp - 0x40], eax
jl 0x100322a4
mov dword [ebp - 0x24], 0xfffffffb
lea ecx, [ebp - 0x218]
push eax
call fcn.1001704c
mov byte [ebp - 4], 0x1e
xor eax, eax
mov dword [ebp - 0x60], 0x34572090
xor ecx, ecx
mov dword [ebp - 0x48], 0x2c22a665
inc ecx
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], ecx
jge 0x10032310
push dword [ebp - 0x40]
lea ecx, [ebp - 0x218]
call fcn.100170ea
mov dword [eax], 0xc760
xor eax, eax
inc dword [ebp - 0x40]
inc eax
cmp dword [ebp - 0x40], eax
jl 0x100322ef
push 2
mov dword [ebp - 0x40], eax
pop esi
cmp dword [ebp - 0x40], esi
jge 0x1003232f