Function at 0x1002f9c8
Capabilities:
Check os version
Compare security identifiers
Create directory
Delete directory
Delete file
Enumerate gui resources
Extract resource via kernel32 functions
Get disk information
Get file attributes
Get file system object information
Identify system language via api
Parse pe header
Query or enumerate registry key
Read .ini file
Suspend thread

Disassembly:
mov eax, 0x1008553d
call fcn.10084380
mov eax, 0x1564
call fcn.10080c40
push ebx
push esi
mov eax, 0x61928c17
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x5d0], eax
lea ecx, [ebp - 0xb6c]
mov dword [ebp - 0x5cc], eax
xor ebx, ebx
push edi
mov dword [ebp - 0x5c8], eax
inc ebx
mov dword [ebp - 0x5c4], eax
push 3
mov dword [ebp - 0x14], ebx
pop edi
mov dword [ebp - 0x2c], 0xd193e05
mov dword [ebp - 0x50], 0x2baef6e2
mov dword [ebp - 0x2c], 0x15466bc6
push edi
mov byte [ebp - 0x61], dl
call fcn.1001854e
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
jge 0x1002fa5e
push dword [ebp - 0x20]
lea ecx, [ebp - 0xb6c]
call fcn.100185ec
mov dword [eax], 0xf9b6917a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x1002fa40
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002fa88
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002fa85
push 0x550
push 0xb02
push eax
push 0x18f9
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1002fa63
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x5c4]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x5c4]
mov eax, dword [ebp - 0x2c]
neg edx
push ebx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
sub ecx, dword [ebp - 0x5c4]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0xb6c]
mov eax, dword [ebp - 0x5cc]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x2c]
call fcn.100185ec
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x5cc]
cmp esi, eax
mov eax, dword [ebp - 0x50]
setge cl
imul eax, ecx
xor ecx, ecx
cmp eax, 0x5de1fc65
setne cl
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0xb6c]
or dword [ebp - 4], 0xffffffff
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1002fb2f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x13d4], 0xf0ea
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1002fb16
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002fb41
push eax
call dword [sym.imp.KERNEL32.dll_EncodePointer]
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002fb53
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
push 2
lea ecx, [ebp - 0x138]
call fcn.1001854e
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 0x2c], 0x98311173
mov dword [ebp - 0x28], 0xfffffff8
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1002fb84
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x1002fbb4
mov dword [ebp - 0x20], 0x53aa9ac7
mov dword [ebp - 0x20], eax
jmp 0x1002fbab
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x1002fba8
push eax
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jne 0x1002fb95
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
je 0x1002fb89
mov dword [ebp - 0x34], 0xffffffff
lea ecx, [ebp - 0xe1c]
mov dword [ebp - 0x3c], 0xd06ce125
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0x88a137b1
push ebx
call fcn.1001854e
mov byte [ebp - 4], 2
xor eax, eax
mov dword [ebp - 0x3c], 0x9cb61d22
mov dword [ebp - 0x3c], 0xc2da8afc
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002fc1b
push dword [ebp - 0x14]
lea ecx, [ebp - 0xe1c]
call fcn.100185ec
mov dword [eax], 0x2a1836cc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002fbfd
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002fc2d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x104c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1002fc20
inc dword [ebp - 0x104c]
lea ecx, [ebp - 0xe1c]
mov byte [ebp - 4], bl
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1002fc6c
push dword [ebp - 0x20]
lea ecx, [ebp - 0x138]
call fcn.100185ec
mov dword [eax], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1002fc51
xor eax, eax
push eax
lea ecx, [ebp - 0x138]
call fcn.100185ec
xor ebx, ebx
lea ecx, [ebp - 0x138]
push ebx
mov esi, eax
call fcn.100185ec
mov ecx, dword [esi]
xor edx, edx
push ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x138]
setge dl
mov dword [ebp - 0x2c], edx
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x138]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x138]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
xor esi, esi
inc esi
test ecx, ecx
jne 0x1002fcdc
push esi
lea ecx, [ebp - 0x138]
call fcn.100185ec
cmp dword [eax], ebx
jne 0x1002fcdc
xor eax, eax
mov edi, eax
jmp 0x1002fcde
mov edi, esi
push esi
lea ecx, [ebp - 0x138]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x138]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
sub ecx, edi
je 0x1002fd1b
xor eax, eax
lea ecx, [ebp - 0x138]
inc eax
push eax
call fcn.100185ec
cmp dword [eax], ebx
je 0x1002fd1b
xor ebx, ebx
inc ebx
mov edx, ebx
jmp 0x1002fd22
xor eax, eax
xor ebx, ebx
mov edx, eax
inc ebx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x34]
jne 0x1002fd48
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1002fd56
push 0x7f0
call dword [sym.imp.USER32.dll_GetKeyboardType]
jmp 0x1002fd56
mov dword [ebp - 0x34], 0x76a
mov dword [ebp - 0x34], 0x661fbc9f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x138]
call fcn.100185d0
push 2
lea ecx, [ebp - 0x6f0]
call fcn.1001854e
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x8b0]
mov dword [ebp - 0x20], 0x622ba394
mov dword [ebp - 0x2c], 0xfffffffd
push 2
call fcn.1001854e
push 4
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x50], 0x9733
mov dword [ebp - 0x38], 0x67656540
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x1002fdd2
push dword [ebp - 0x14]
lea ecx, [ebp - 0x6f0]
call fcn.100185ec
mov dword [eax], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002fdb3
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x1002fdfa
push dword [ebp - 0x14]
lea ecx, [ebp - 0x8b0]
call fcn.100185ec
mov dword [eax], 0x8fb0b44c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002fddb
xor eax, eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], eax
jl 0x1002ff0e
jmp 0x1002fe0a
xor eax, eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x34], 0x55ebda18
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x1002fe3b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x11c], 0xc3fbb4eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x1002fe23
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002fe51
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe34], 0x9cf13e1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002fe40
dec dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xe34], eax
cmp dword [ebp - 0x11c], eax
jne 0x1002fea0
dec dword [ebp - 0x38]
lea ecx, [ebp - 0x6f0]
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x20]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x6f0]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
mov dword [esi], ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
sub eax, 9
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x6f0]
xor eax, eax
push eax
call fcn.100185ec
cmp dword [eax], 0xffffffff
jle 0x1002fec4
xor eax, eax
cmp dword [ebp - 0xe34], eax
je 0x1002fec6
mov esi, ebx
jmp 0x1002fec8
xor eax, eax
mov esi, eax
push ebx
lea ecx, [ebp - 0x8b0]
call fcn.100185ec
lea ecx, [ebp - 0x8b0]
sub esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x2c], esi
push eax
call fcn.100185ec
mov edx, dword [ebp - 0x11c]
mov esi, eax
mov ecx, dword [ebp - 0x2c]
xor eax, eax
cmp edx, ecx
setg al
mov dword [esi], eax
xor eax, eax
cmp dword [ebp - 0x11c], eax
jne 0x1002ff0e
dec dword [ebp - 0x20]
jns 0x1002fe08
lea ecx, [ebp - 0x8b0]
call fcn.100185d0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6f0]
call fcn.100185d0
xor eax, eax
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], 0xa394643c
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], 0xed40a165
mov dword [ebp - 0x2c], 0x8628405c
push ebx
call fcn.1001854e
mov dword [ebp - 4], 5
xor eax, eax
mov dword [ebp - 0x40], 0xfffffff7
mov dword [ebp - 0x38], 0x4d
mov dword [ebp - 0x50], 0xfff8
mov dword [ebp - 0x4c], 0xa332a5b4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], eax
jmp 0x1002ff8f
push dword [ebp - 0x20]
call fcn.100185ec
mov dword [eax], 0xbde64f6c
inc dword [ebp - 0x20]
lea ecx, [ebp - 0x4b0]
cmp dword [ebp - 0x20], ebx
jl 0x1002ff7e
mov eax, dword [ebp - 0x28]
xor ebx, ebx
mov dword [ebp - 0x18], eax
push ebx
call fcn.100185ec
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x4b0]
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
push ebx
call fcn.100185ec
lea ecx, [ebp - 0x4b0]
cmp dword [eax], 0xb4ff
setne bl
xor esi, esi
push esi
call fcn.100185ec
xor edx, edx
push esi
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
add ecx, ebx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edi, edi
mov dword [ebp - 0x2c], ecx
inc edi
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
lea ecx, [ebp - 0x4b0]
setl dl
add edx, 0x5794198e
mov dword [ebp - 0x2c], edx
call fcn.100185ec
mov ecx, dword [ebp - 0x2c]
or dword [ebp - 4], 0xffffffff
mov dword [eax], ecx
lea ecx, [ebp - 0x4b0]
call fcn.100185d0
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x148]
call fcn.1001854e
push 4
pop esi
push esi
lea ecx, [ebp - 0x498]
mov dword [ebp - 4], 6
call fcn.1001854e
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x9e8]
push edi
mov dword [ebp - 0x34], 0x80ebbd48
call fcn.1001854e
push 8
pop eax
mov byte [ebp - 4], al
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x100300b5
push dword [ebp - 0x24]
lea ecx, [ebp - 0x498]
call fcn.100185ec
mov dword [eax], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x1003009b
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jge 0x100300d5
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xa4], 6
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x100300bd
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x100300f8
push dword [ebp - 0x24]
lea ecx, [ebp - 0x9e8]
call fcn.100185ec
or dword [eax], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x100300dd
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x1003010e
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x140c], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x100300fd
push ebx
lea ecx, [ebp - 0x498]
call fcn.100185ec
mov dword [eax], 9
jmp 0x10030260
xor eax, eax
mov dword [ebp - 0x24], 0x9ef72d4e
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jg 0x10030252
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp dword [ebp + eax*4 - 0xa4], ebx
jne 0x1003015c
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xa4], ebx
jne 0x1003015c
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0xa0]
neg esi
mov eax, dword [ebp - 0x24]
sbb esi, esi
neg esi
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp esi, eax
sete cl
cmp edx, ecx
je 0x10030181
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x9e8]
push ebx
mov eax, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
call fcn.100185ec
or dword [eax], 0xffffffff
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xa4], ebx
jne 0x10030218
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x100301cf
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xa4], ebx
jne 0x100301cf
xor eax, eax
mov esi, eax
jmp 0x100301d3
mov esi, edi
xor eax, eax
push eax
lea ecx, [ebp - 0x9e8]
call fcn.100185ec
xor edx, edx
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0xa4]
lea eax, [esi - 1]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0xa4]
cmp edx, eax
mov eax, dword [ebp - 0x24]
setg cl
add ecx, dword [ebp + eax*4 - 0xa4]
jne 0x10030218
xor eax, eax
mov edx, eax
jmp 0x1003021a
mov edx, edi
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x8407
mov eax, dword [ebp - 0x24]
setl cl
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp + eax*4 - 0xa4]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1408], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x1003013f
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x498]
call fcn.100185ec
dec dword [eax]
push ebx
lea ecx, [ebp - 0x498]
call fcn.100185ec
cmp dword [eax], 7
jg 0x1003012a
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x10030290
push 0x1bd4
push 0x2c0
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
lea ecx, [ebp - 0x9e8]
call fcn.100185d0
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 6
call fcn.100185d0
mov dword [ebp - 0x2c], 0x98311173
mov dword [ebp - 0x14], 0x38a1f949
mov dword [ebp - 0x38], 0x6310fe
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x40], 0x13ec752f
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x4c], 0x18bd8502
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x40], 0x3a38d067
mov dword [ebp - 0x50], 0x523e24b1
push 4
pop eax
mov dword [ebp - 0xcd4], eax
mov dword [ebp - 0xcd0], eax
mov dword [ebp - 0xccc], eax
mov dword [ebp - 0xcc8], eax
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x10030323
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x3c4], 0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10030312
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0x5466
mov eax, dword [ebp - 0x14]
setle cl
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x40]
neg edx
mov eax, dword [ebp - 0x38]
sbb edx, edx
inc edx
cmp edx, 0xab6dad81
sbb esi, esi
xor edx, edx
inc esi
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setne dl
xor ebx, ebx
cmp edx, esi
setle bl
xor ecx, ecx
cmp eax, ebx
setle cl
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x2c]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xfffffffd
setge al
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], eax
jl 0x100304d4
push edi
lea ecx, [ebp - 0x7d0]
call fcn.1001854e
xor eax, eax
mov byte [ebp - 4], 9
mov dword [ebp - 0x20], eax
jmp 0x100303e6
push dword [ebp - 0x20]
lea ecx, [ebp - 0x7d0]
call fcn.100185ec
or dword [eax], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x100303d2
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x3c4]
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x50]
test eax, eax
je 0x10030442
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setle dl
mov eax, dword [ebp + eax*4 - 0x3c4]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], edx
jg 0x10030428
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x3c4]
cmp dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x2c]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x4c]
jne 0x10030442
mov edx, edi
jmp 0x10030446
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x3c4]
cmp eax, edx
setne cl
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp + eax*4 - 0x3c4]
sub ecx, dword [ebp - 0x14]
dec ecx
neg ecx
sbb ecx, ecx
xor ebx, ebx
neg ecx
mov dword [ebp - 0xcc8], ecx
lea ecx, [ebp - 0x7d0]
push ebx
call fcn.100185ec
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x7d0]
push ebx
mov eax, dword [ebp + eax*4 - 0x3c4]
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x3c4]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x7d0]
call fcn.100185ec
lea ecx, [ebp - 0x7d0]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 6
call fcn.100185d0
dec dword [ebp - 0x1c]
jns 0x100303bb
mov dword [ebp - 0x58], 0xffffffff
lea ecx, [ebp - 0xa88]
mov eax, 0x61928c17
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], eax
mov dword [ebp - 0x604], eax
push 3
mov dword [ebp - 0x14], edi
pop ebx
mov dword [ebp - 0x2c], 0xd193e05
mov dword [ebp - 0x50], 0x2baef6e2
mov dword [ebp - 0x2c], 0x15466bc6
push ebx
call fcn.1001854e
mov byte [ebp - 4], 0xa
xor eax, eax
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jge 0x10030552
push dword [ebp - 0x20]
lea ecx, [ebp - 0xa88]
call fcn.100185ec
mov dword [eax], 0xf9b6917a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10030534
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1003057c
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030579
push 0x550
push 0xb02
push eax
push 0x18f9
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x10030557
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x604]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x604]
mov eax, dword [ebp - 0x2c]
neg edx
push edi
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
sub ecx, dword [ebp - 0x604]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0xa88]
mov eax, dword [ebp - 0x60c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x2c]
call fcn.100185ec
xor ecx, ecx
mov dword [eax], esi
mov eax, dword [ebp - 0x60c]
cmp esi, eax
mov eax, dword [ebp - 0x50]
setge cl
imul eax, ecx
xor ecx, ecx
cmp eax, 0x5de1fc65
setne cl
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0xa88]
mov byte [ebp - 4], 6
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10030623
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x13e4], 0xf0ea
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003060a
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030635
push eax
call dword [sym.imp.KERNEL32.dll_EncodePointer]
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030649
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x1003066d
push dword [ebp - 0x20]
lea ecx, [ebp - 0x148]
call fcn.100185ec
mov dword [eax], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10030652
xor eax, eax
mov dword [ebp - 0x28], 0xfffffff8
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030686
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x100306b6
mov dword [ebp - 0x20], 0x53aa9ac7
mov dword [ebp - 0x20], eax
jmp 0x100306ad
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x100306aa
push eax
push eax
call dword [sym.imp.USER32.dll_LoadCursorA]
xor eax, eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jne 0x10030697
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
je 0x1003068b
push eax
lea ecx, [ebp - 0x148]
call fcn.100185ec
mov esi, eax
lea ecx, [ebp - 0x148]
xor eax, eax
push eax
call fcn.100185ec
mov ecx, dword [esi]
xor edx, edx
push edi
cmp ecx, dword [eax]
lea ecx, [ebp - 0xe64]
setge dl
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x3c], 0xd06ce125
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0x88a137b1
call fcn.1001854e
mov byte [ebp - 4], 0xb
xor eax, eax
mov dword [ebp - 0x3c], 0x9cb61d22
mov dword [ebp - 0x3c], 0xc2da8afc
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x1003073e
push dword [ebp - 0x14]
lea ecx, [ebp - 0xe64]
call fcn.100185ec
mov dword [eax], 0x2a1836cc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030720
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x10030750
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe4c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10030743
inc dword [ebp - 0xe4c]
lea ecx, [ebp - 0xe64]
mov byte [ebp - 4], 6
call fcn.100185d0
xor ebx, ebx
lea ecx, [ebp - 0x148]
push ebx
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x148]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x148]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
test ecx, ecx
jne 0x100307af
push edi
lea ecx, [ebp - 0x148]
call fcn.100185ec
cmp dword [eax], ebx
jne 0x100307af
xor eax, eax
mov edi, eax
xor eax, eax
lea ecx, [ebp - 0x148]
inc eax
push eax
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x148]
mov esi, eax
call fcn.100185ec
mov ecx, dword [esi]
xor esi, esi
inc esi
imul ecx, dword [eax]
sub ecx, edi
je 0x100307ec
push esi
lea ecx, [ebp - 0x148]
call fcn.100185ec
cmp dword [eax], ebx
je 0x100307ec
mov edx, esi
jmp 0x100307f0
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov ebx, dword [sym.imp.USER32.dll_GetDC]
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x58]
jne 0x10030bdd
mov dword [ebp - 0x28], esi
xor eax, eax
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x3c], 0xfffffffc
push 3
mov dword [ebp - 0x20], eax
pop edi
cmp dword [ebp - 0x20], edi
jge 0x1003083f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x14cc], 0xfffffff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x10030827
xor eax, eax
push 2
pop ecx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], eax
jl 0x1003088d
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], eax
jl 0x10030888
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x1003087e
push 0x2421
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
dec dword [ebp - 0x20]
jns 0x10030859
push 2
xor eax, eax
pop ecx
dec dword [ebp - 0x28]
jns 0x1003084a
mov dword [ebp - 0x28], 0xb04800fa
mov dword [ebp - 0x50], 0xb0a3531f
mov dword [ebp - 0x14], 0x4868fdad
mov dword [ebp - 0x2c], 0x8f58
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x100308c9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xd0], 0xf90edcad
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x100308b1
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x100308e9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x344], 0xdef906d8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x100308d1
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ecx
jge 0x10030909
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x7b4], 0xe708bee
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x100308f1
xor eax, eax
push 4
mov dword [ebp - 0x24], eax
pop ecx
cmp dword [ebp - 0x24], ecx
jge 0x1003092c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x1424], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10030914
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x1003094c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x79c], 0x7887b341
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x10030934
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030971
push 0x166e
push 0x89e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call ebx
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
xor eax, eax
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x14], eax
jne 0x10030982
mov dword [ebp - 0x344], ebx
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x7b4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x50], eax
jne 0x1003099c
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x14], eax
je 0x1003099e
mov ecx, ebx
xor eax, eax
cmp ecx, 6
setle al
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], ebx
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x100309c3
mov esi, ebx
cmp dword [ebp - 0x7b0], eax
jne 0x100309c5
mov esi, eax
inc dword [ebp - 0xd0]
xor ecx, ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x2c]
cmp esi, eax
sete cl
imul eax, ecx, 0x2d17359
mov dword [ebp - 0x1424], ecx
cmp edx, eax
jle 0x100309f7
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x344], eax
je 0x100309f9
mov ecx, ebx
xor eax, eax
cmp ecx, 0x5c0f
setl al
sub eax, dword [ebp - 0x2c]
jne 0x10030a13
mov ecx, eax
cmp dword [ebp - 0xd0], eax
je 0x10030a15
mov ecx, ebx
xor eax, eax
test ecx, ecx
push 2
sets al
lea ecx, [ebp - 0x708]
mov dword [ebp - 0x79c], eax
xor eax, eax
mov byte [ebp - 0xd], al
call fcn.1001854e
mov byte [ebp - 4], 0xc
xor eax, eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10030a68
push dword [ebp - 0x20]
lea ecx, [ebp - 0x708]
call fcn.100185ec
mov dword [eax], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10030a4d
xor eax, eax
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
jl 0x10030b77
jmp 0x10030a78
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10030a9a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x6b0], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10030a81
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x10030aad
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
push dword [ebp - 0x14]
lea ecx, [ebp - 0x708]
call fcn.100185ec
cmp dword [eax], 0
je 0x10030b31
mov dword [ebp - 0x1c], ebx
xor eax, eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x10030ae5
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x708]
call fcn.100185ec
cmp dword [eax], 0
jne 0x10030ae5
dec dword [ebp - 0x1c]
jns 0x10030acd
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x708]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x6b0]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x6b0]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x14]
call fcn.100185ec
and dword [eax], 0
mov eax, dword [ebp - 0x1c]
dec eax
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
jmp 0x10030b6e
mov dword [ebp - 0x20], 0x5752783d
mov eax, dword [ebp - 0x20]
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x20], eax
je 0x10030b46
mov ecx, ebx
mov eax, dword [ebp - 0x20]
imul eax, ecx
mov ecx, dword [ebp - 0x24]
imul eax, eax, 0xa
sub ecx, eax
cmp dword [ebp - 0x6b0], ecx
jl 0x10030b68
mov dword [ebp - 0x2c], 0xdda259c4
dec dword [ebp - 0x2c]
jmp 0x10030b6e
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], ebx
dec dword [ebp - 0x14]
jns 0x10030a76
lea ecx, [ebp - 0x708]
call fcn.100185d0
cmp byte [ebp - 0xd], 0
je 0x10030d0f
xor eax, eax
mov dword [ebp - 0x28], 0xffffffff
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x10030bb6
push 0x362
push 0x7a0
push eax
push eax
push 0x1539
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
xor eax, eax
mov dword [ebp - 0x28], 0xfffffff2
jmp 0x10030bc7
cmp dword [ebp - 0x28], eax
jne 0x10030bcd
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x1c
jl 0x10030bbf
push 0x7f0
call dword [sym.imp.USER32.dll_GetKeyboardType]
jmp 0x10030d0f
xor ebx, ebx
mov dword [ebp - 0x3c], 0xd06ce125
inc ebx
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0x88a137b1
lea ecx, [ebp - 0xe94]
push ebx
call fcn.1001854e
mov byte [ebp - 4], 0xd
xor eax, eax
mov dword [ebp - 0x3c], 0x9cb61d22
mov dword [ebp - 0x3c], 0xc2da8afc
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x10030c3b
push dword [ebp - 0x14]
lea ecx, [ebp - 0xe94]
call fcn.100185ec
mov dword [eax], 0x2a1836cc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10030c1d
xor eax, eax
push 3
mov dword [ebp - 0x14], eax
pop edi
jmp 0x10030c50
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe7c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030c43
inc dword [ebp - 0xe7c]
lea ecx, [ebp - 0xe94]
mov byte [ebp - 4], 6
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x34], 0x76a
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0xc20]
push edi
call fcn.1001854e
mov byte [ebp - 4], 0xe
xor eax, eax
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], 0xb15d3e99
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x10030cb1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xeac], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10030c9d
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x10030cc7
push dword [ebp - 0x14]
call fcn.100185ec
mov dword [eax], 0xd7006986
inc dword [ebp - 0x14]
lea ecx, [ebp - 0xc20]
cmp dword [ebp - 0x14], edi
jl 0x10030cb6
mov esi, dword [ebp - 0xeac]
push 2
call fcn.100185ec
cmp ebx, esi
sbb edx, edx
xor ecx, ecx
mov dword [eax], esi
neg edx
mov eax, dword [ebp - 0xea4]
cmp edx, eax
setge cl
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0xc20]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
call fcn.100185d0
mov dword [ebp - 0x34], 0x661fbc9f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x148]
call fcn.100185d0
push 2
lea ecx, [ebp - 0x158]
call fcn.1001854e
mov dword [ebp - 4], 0xf
xor eax, eax
mov dword [ebp - 0x2c], 0x98311173
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10030d66
push dword [ebp - 0x20]
lea ecx, [ebp - 0x158]
call fcn.100185ec
mov dword [eax], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10030d4b
xor eax, eax
push eax
lea ecx, [ebp - 0x158]
call fcn.100185ec
xor ebx, ebx
lea ecx, [ebp - 0x158]
push ebx
mov esi, eax
call fcn.100185ec
mov ecx, dword [esi]
xor edx, edx
push ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x158]
setge dl
mov dword [ebp - 0x2c], edx
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x158]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x158]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
xor esi, esi
inc esi
test ecx, ecx
jne 0x10030dd6
push esi
lea ecx, [ebp - 0x158]
call fcn.100185ec
cmp dword [eax], ebx
jne 0x10030dd6
xor eax, eax
mov edi, eax
jmp 0x10030dd8
mov edi, esi
push esi
lea ecx, [ebp - 0x158]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x158]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
sub ecx, edi
je 0x10030e12
xor edi, edi
lea ecx, [ebp - 0x158]
inc edi
push edi
call fcn.100185ec
cmp dword [eax], ebx
je 0x10030e15
mov edx, edi
jmp 0x10030e19
xor edi, edi
inc edi
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x34]
jne 0x10030e3f
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x10030e4d
push 0x7f0
call dword [sym.imp.USER32.dll_GetKeyboardType]
jmp 0x10030e4d
mov dword [ebp - 0x34], 0x76a
mov dword [ebp - 0x34], 0x661fbc9f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x158]
call fcn.100185d0
push 2
lea ecx, [ebp - 0x168]
call fcn.1001854e
mov dword [ebp - 4], 0x10
xor eax, eax
mov dword [ebp - 0x2c], 0x98311173
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10030ea4
push dword [ebp - 0x20]
lea ecx, [ebp - 0x168]
call fcn.100185ec
mov dword [eax], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10030e89
xor eax, eax
push eax
lea ecx, [ebp - 0x168]
call fcn.100185ec
xor ebx, ebx
lea ecx, [ebp - 0x168]
push ebx
mov esi, eax
call fcn.100185ec
mov ecx, dword [esi]
xor edx, edx
push ebx
cmp ecx, dword [eax]
lea ecx, [ebp - 0x168]
setge dl
mov dword [ebp - 0x2c], edx
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x168]
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x168]
mov esi, eax
call fcn.100185ec
mov ecx, dword [eax]
imul ecx, dword [esi]
test ecx, ecx
jne 0x10030f0f
push edi
lea ecx, [ebp - 0x168]
call fcn.100185ec
cmp dword [eax], ebx
jne 0x10030f0f
xor eax, eax
mov edi, eax
xor eax, eax
lea ecx, [ebp - 0x168]
inc eax
push eax
call fcn.100185ec
push ebx
lea ecx, [ebp - 0x168]
mov esi, eax
call fcn.100185ec
mov ecx, dword [esi]
xor esi, esi
inc esi
imul ecx, dword [eax]
sub ecx, edi
je 0x10030f4c
push esi
lea ecx, [ebp - 0x168]
call fcn.100185ec
cmp dword [eax], ebx
je 0x10030f4c
mov edx, esi
jmp 0x10030f50
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setl cl
cmp ecx, dword [ebp - 0x34]
jne 0x10030f76
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x10030f84
push 0x7f0
call dword [sym.imp.USER32.dll_GetKeyboardType]
jmp 0x10030f84
mov dword [ebp - 0x34], 0x76a
mov dword [ebp - 0x34], 0x661fbc9f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x168]
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x10030fb7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x82c], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10030f9e
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x10030fd7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc4], 0xc23afc37
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10030fbf
xor eax, eax
mov ebx, dword [sym.imp.GDI32.dll_GdiFlush]
mov dword [ebp - 0x824], 0xffffffe2
jmp 0x10031015
mov dword [ebp - 0x20], 0x3d9532bb
mov dword [ebp - 0x20], 0xfffffffb
jmp 0x10031009
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x10031006
call ebx
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff0
jg 0x10030ff9
inc dword [ebp - 0x824]
cmp dword [ebp - 0x824], 0xd
jle 0x10030fe9
mov edi, dword [sym.imp.GDI32.dll_MaskBlt]
mov dword [ebp - 0xc4], 0xfffffff4
cmp dword [ebp - 0xc4], 0xf
jne 0x1003109b
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x10031089
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x183e
push 0x6e
push 0x1c9
push eax
push 0x26cb
push 0x1aa
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
push 0x1b3c
push 0x430
push 0x604
push 0x14a6
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
xor eax, eax
inc dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 0xf
je 0x10031037
xor esi, esi
inc esi
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x2c], 6
mov dword [ebp - 0x34], 0x5761ac7e
push 4
mov dword [ebp - 0x20], eax
pop ecx
cmp dword [ebp - 0x20], ecx
jge 0x100310d3
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x430], 0xe0cf
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100310bb
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jg 0x10031231
mov dword [ebp - 0x2c], 0xffffffff
lea ecx, [ebp - 0xaa0]
push 2
call fcn.1001854e
xor eax, eax
mov dword [ebp - 4], 0x11
mov dword [ebp - 0x20], eax
jmp 0x10031119
push dword [ebp - 0x20]
lea ecx, [ebp - 0xaa0]
call fcn.100185ec
mov dword [eax], 6
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10031102
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x430]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x430], 0
jne 0x10031171
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x430]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x430]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x428]
setge cl
sub ecx, eax
mov eax, dword [ebp - 0x1c]
imul eax, ecx
test eax, eax
jne 0x10031171
mov edx, eax
jmp 0x10031173
mov edx, esi
mov eax, dword [ebp - 0x42c]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setl cl
mov esi, dword [ebp + eax*4 - 0x430]
mov eax, dword [ebp - 0x1c]
lea edx, [ecx + 0xfffd]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setl cl
xor edx, edx
cmp ecx, esi
mov eax, dword [ebp + eax*4 - 0x430]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0x8722
lea ecx, [ebp - 0xaa0]
setge al
mov dword [ebp - 0x2c], eax
xor eax, eax
mov esi, dword [ebp - 0x2c]
push eax
call fcn.100185ec
xor ecx, ecx
mov dword [eax], esi
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x2c]
shl eax, 3
cmp eax, 0xfffffff8
setne cl
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x430]
cmp edx, eax
setle cl
sub ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0xaa0]
or dword [ebp - 4], 0xffffffff
call fcn.100185d0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
push 1
pop esi
jle 0x100310e0
push 4
xor eax, eax
pop ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1003124f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x720], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1003123a
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x14], eax
inc ecx
cmp dword [ebp - 0x14], ecx
jge 0x10031272
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x94], 0xc23afc37
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1003125a
xor eax, eax
mov dword [ebp - 0x718], 0xffffffe2
jmp 0x100312aa
mov dword [ebp - 0x20], 0x3d9532bb
mov dword [ebp - 0x20], 0xfffffffb
jmp 0x1003129e
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1003129b
call ebx
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff0
jg 0x1003128e
inc dword [ebp - 0x718]
cmp dword [ebp - 0x718], 0xd
jle 0x1003127e
mov dword [ebp - 0x94], 0xfffffff4
jmp 0x10031315
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1003130f
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x183e
push 0x6e
push 0x1c9
push eax
push 0x26cb
push 0x1aa
call ebx
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x1b3c
push 0x430
push 0x604
push 0x14a6
call ebx
push eax
call esi
push eax
call edi
xor eax, eax
inc dword [ebp - 0x94]
cmp dword [ebp - 0x94], 0xf
je 0x100312bf
push 2
lea ecx, [ebp - 0x2c0]
call fcn.1001854e
push 4
mov dword [ebp - 4], 0x12
lea ecx, [ebp - 0x9a0]
xor eax, eax
mov dword [ebp - 0x18], 0xfffffff6
inc eax
pop ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], 0xd0811fc8
push ebx
call fcn.1001854e
mov byte [ebp - 4], 0x13
xor eax, eax
mov dword [ebp - 0x50], 0xfffffffe
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x1003138a
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c0]
call fcn.100185ec
mov dword [eax], 0xdb58e469
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1003136b
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x100313aa
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xf9c], 0x985a9576
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10031392
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x100313d0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x9a0]
call fcn.100185ec
mov dword [eax], 0x31e7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x100313b2
xor eax, eax
push eax
lea ecx, [ebp - 0x2c0]
call fcn.100185ec
mov esi, eax
lea ecx, [ebp - 0x2c0]
xor eax, eax
push eax
call fcn.100185ec
mov ecx, dword [esi]
push 3
pop esi
mov dword [eax], ecx
lea ecx, [ebp - 0x9a0]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xf90]
push esi
call fcn.100185ec
mov ecx, dword [ebp - 0x38]
xor ebx, ebx
cmp dword [eax], ecx
lea ecx, [ebp - 0x2c0]
setg bl
xor eax, eax
push eax
call fcn.100185ec
xor ecx, ecx
cmp ebx, dword [eax]
setle cl
xor ebx, ebx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x2c0]
push ebx
call fcn.100185ec
mov edx, dword [ebp - 0x34]
xor ecx, ecx
push ebx
cmp dword [eax], edx
setle cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x2c0]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
call fcn.100185ec
mov ecx, dword [ebp - 0x38]
sub ecx, 0x2157
cmp dword [eax], ecx
jle 0x100314b0
push esi
lea ecx, [ebp - 0xba8]
call fcn.1001854e
xor eax, eax
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x20], eax
jmp 0x1003148c
push dword [ebp - 0x20]
call fcn.100185ec
mov dword [eax], 0xc6dcff2f
inc dword [ebp - 0x20]
lea ecx, [ebp - 0xba8]
cmp dword [ebp - 0x20], esi
jl 0x1003147b
xor ebx, ebx
inc ebx
push ebx
call fcn.100185ec
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
lea ecx, [ebp - 0xba8]
jmp 0x100315ce
mov dword [ebp - 0x28], 0x1839
mov dword [ebp - 0x34], 0x82eddaad
mov dword [ebp - 0x30], 0x66fc9e27
inc dword [ebp - 0x28]
je 0x100314e0
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x2c0]
push ebx
call fcn.100185ec
xor ebx, ebx
inc ebx
mov dword [eax], ebx
jmp 0x100314e3
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x28]
cmp ebx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jle 0x100315d5
push 4
pop eax
push eax
lea ecx, [ebp - 0x940]
call fcn.1001854e
mov byte [ebp - 4], 0x15
xor eax, eax
mov dword [ebp - 0x58], 0x1cb69acb
mov dword [ebp - 0x20], eax
push 4
pop eax
cmp dword [ebp - 0x20], eax
jge 0x10031553
push eax
pop ebx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x940]
call fcn.100185ec
mov dword [eax], 2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10031534
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0xf90]
lea ecx, [ebp - 0x9a0]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
push esi
call fcn.100185ec
push 2
lea ecx, [ebp - 0x940]
call fcn.100185ec
push esi
lea ecx, [ebp - 0x940]
call fcn.100185ec
mov ecx, dword [ebp - 0x30]
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [ebp - 0xf90]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x30], 0xfffffffc
cmp dword [ebp - 0x30], 0x15
je 0x100315c8
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x100315bf
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x15
jne 0x100315ad
lea ecx, [ebp - 0x940]
call fcn.100185d0
jmp 0x100315f4
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x100315f4
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [ebp - 0x9a0]
call fcn.100185d0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c0]
call fcn.100185d0
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x10031630
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7e0], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10031618
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x10031650
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa8], 0xc23afc37
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10031638
xor eax, eax
mov dword [ebp - 0x7d8], 0xffffffe2
jmp 0x1003168c
mov dword [ebp - 0x20], 0x3d9532bb
mov dword [ebp - 0x20], 0xfffffffb
jmp 0x10031680
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x1003167d
call dword [sym.imp.GDI32.dll_GdiFlush]
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff0
jg 0x1003166c
inc dword [ebp - 0x7d8]
cmp dword [ebp - 0x7d8], 0xd
jle 0x1003165c
mov dword [ebp - 0xa8], 0xfffffff4
jmp 0x100316fb
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x100316f5
cmp dword [ebp - 0xa8], 0xf
je 0x100316a1
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x2c], 6
mov dword [ebp - 0x34], 0x5761ac7e
push 4
mov dword [ebp - 0x20], eax
pop ecx
cmp dword [ebp - 0x20], ecx
jge 0x1003173c