Function at 0x1001bdc9
Capabilities:
Get file attributes
Get geographical location
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10089b8e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1f0
push ebx
push esi
push edi
push 3
pop esi
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x138]
push esi
mov dword [esp + 0xe8], edx
call fcn.10019e28
xor ebx, ebx
mov dword [esp + 0x10], 0xb02971c
mov dword [esp + 0x1c], ebx
jmp 0x1001be2e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], 0x2e91a049
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001be18
mov dword [esp + 0x10], ebx
jmp 0x1001be50
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], 0xc2db2212
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001be3a
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001be6f
call esi
push eax
call dword [sym.imp.USER32.dll_IsIconic]
lea ecx, [esp + 0x138]
call fcn.1001a726
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10009650]
lea eax, [esp + 0x1a8]
push eax
lea eax, [esp + 0x19c]
mov dword [esp + 0x94], ebx
push eax
push ebx
lea ecx, [esp + 0x9c]
mov dword [esp + 0xa0], ebx
movdqu xmmword [esp + 0x1a4], xmm0
mov dword [esp + 0xa4], ebx
call fcn.1001b55b
mov dword [esp + 0x2c], 0x948708ef
mov dword [esp + 0x2c], 0xc8cac31e
mov dword [esp + 0x30], 0x9f451dba
mov dword [esp + 0x28], 0x82169286
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001bef6
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_RemovePropA]
mov edi, dword [esp + 0x8c]
cmp dword [edi + 4], ebx
je 0x1001bf11
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x2c], ebx
je 0x1001bf11
xor ecx, ecx
inc ecx
jmp 0x1001bf13
mov ecx, ebx
sub ecx, dword [edi + 4]
mov eax, dword [edi + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x8c]
mov esi, dword [eax]
mov eax, dword [esp + 0x30]
cmp eax, esi
mov eax, dword [esp + 0x8c]
setge cl
xor edx, edx
cmp ecx, dword [eax + 0xc]
setne dl
xor eax, eax
cmp edx, dword [edi + 4]
setle al
xor ecx, ecx
cmp esi, eax
setge cl
xor eax, eax
test ecx, ecx
lea ecx, [esp + 0x8c]
setg al
mov dword [esp + 0x28], eax
call fcn.1001a726
push 0xfffffffffffffffa
pop edx
mov dword [esp + 0x18], edx
push 2
mov dword [esp + 0x14], 0x3034d006
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001bf99
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x16c], 0xfff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001bf86
mov dword [esp + 0x10], ebx
jmp 0x1001bfb4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d8], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001bfa5
mov edi, dword [sym.imp.USER32.dll_GetDC]
xor esi, esi
inc esi
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x1001c0da
mov dword [esp + 0x1c], 0xffffffff
lea ecx, [esp + 0x158]
push esi
call fcn.10019e28
mov dword [esp + 0x1c], ebx
jmp 0x1001c003
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x158]
mov dword [eax + ecx*4], 0xf989b1ab
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001bfed
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x16c]
test eax, eax
sete cl
xor eax, eax
cmp ecx, 3
setle al
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1001c0c4
mov dword [esp + 0x1c], 0xfffffffb
mov dword [esp + 0x2c], 0x36dc9922
mov dword [esp + 0x1c], ebx
jmp 0x1001c05e
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1e8], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x1001c04b
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x1001c089
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0x2ca96836
inc dword [esp + 0x2c]
dec dword [esp + 0x1c]
jns 0x1001c06f
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x1001c0ba
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x1001c0b4
push ebx
push 0xfe5
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
dec dword [esp + 0x1c]
jns 0x1001c093
dec dword [esp + 0x10]
jns 0x1001c035
lea ecx, [esp + 0x158]
call fcn.1001a726
dec dword [esp + 0x18]
jns 0x1001bfd2
mov dword [esp + 0x2c], 0xa622a149
lea ecx, [esp + 0xe8]
push 3
call fcn.10019e28
mov dword [esp + 0x1c], ebx
jmp 0x1001c10c
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0xed3c15d0
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x1001c0f6
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp eax, 1
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp eax, edx
mov dword [esi + 4], 0x247adf1a
setl cl
imul eax, ecx, 0x9c3
cmp eax, 0xc17633ef
sbb eax, eax
xor ecx, ecx
neg eax
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, 0x7525d2d9
setl cl
sub ecx, 0x9cf1
je 0x1001c18d
mov dword [esp + 0x28], 0xce008fb0
mov dword [esp + 0x2c], 0xa1650187
mov dword [esp + 0x28], 0xfffffff6
mov dword [esp + 0x2c], 0x58e92eda
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xe8]
mov dword [eax], ecx
jmp 0x1001c19c
mov dword [esp + 0x28], 0xe64f6cbc
mov eax, dword [esp + 0x28]
mov dword [esi + 4], eax
lea ecx, [esp + 0xe8]
call fcn.1001a726
push 3
pop esi
push esi
lea ecx, [esp + 0x9c]
call fcn.10019e28
mov dword [esp + 0x204], ebx
or eax, 0xffffffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], 1
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c1fc
push ebx
push ebx
push 0xfe
push 0x634
push ebx
call dword [sym.imp.USER32.dll_InsertMenuA]
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1001c335
mov dword [esp + 0x20], 0xc6eb81f9
mov dword [esp + 0x1c], ebx
jmp 0x1001c228
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x40], 0xfffffff7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jl 0x1001c218
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax*4 + 0x70]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x70], edx
mov eax, dword [esp + 0x10]
cmp eax, 0xec32
setge cl
add ecx, dword [esp + 0x40]
cmp edx, ecx
jle 0x1001c27e
mov dword [esp + 0x2c], 0x8d8ef068
dec dword [esp + 0x2c]
jmp 0x1001c309
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], 0xfffffff8
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x7c], ebx
je 0x1001c2ba
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x70]
cmp eax, 0x3d88
setg cl
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ebx
jmp 0x1001c303
mov dword [esp + 0x24], ebx
jmp 0x1001c2f9
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c2f5
push ebx
call dword [sym.imp.USER32.dll_DestroyCursor]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jle 0x1001c2e3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x1001c2dd
mov dword [esp + 0x28], 0xfffffff9
mov dword [esp + 0x20], ebx
jmp 0x1001c325
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x70], ebx
jne 0x1001c32b
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x1001c317
dec dword [esp + 0x10]
jns 0x1001c20a
mov dword [esp + 0x10], 0xf2c29a3d
mov dword [esp + 0x38], 0xa41449c9
push 2
mov dword [esp + 0x30], 0xfff8
mov dword [esp + 0x20], ebx
pop esi
jmp 0x1001c369
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xb0], 0x6af1124f
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001c356
mov dword [esp + 0x10], 1
cmp dword [esp + 0x10], ebx
jl 0x1001c393
mov eax, 0x3f467215
mov dword [esp + 0xb0], eax
mov dword [esp + 0x38], eax
dec dword [esp + 0x10]
jns 0x1001c382
mov eax, dword [esp + 0xb4]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
cmp eax, 0x22db785b
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp ecx, dword [esp + 0x28]
setne dl
xor ecx, ecx
sub edx, 0xe486
cmp edx, eax
setge cl
imul eax, ecx, 0xfffc
test eax, eax
jne 0x1001c3ee
cmp dword [esp + 0x2c], ebx
je 0x1001c3ee
xor edx, edx
inc edx
jmp 0x1001c3f0
mov edx, ebx
mov eax, dword [esp + 0xb0]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x38]
push 3
sete cl
add eax, ecx
lea ecx, [esp + 0xf8]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 0x7249
call fcn.10019e28
mov dword [esp + 0x2c], 0x266c
mov dword [esp + 0x28], 0xbf520f09
mov dword [esp + 0x10], ebx
jmp 0x1001c451
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 0x74dd032
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001c441
mov dword [esp + 0x10], ebx
jmp 0x1001c470
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001c45e
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
setge dl
cmp edx, 0xfff6
je 0x1001c51d
mov dword [esp + 0x10], 0xbadcab3
mov dword [esp + 0x28], 1
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c4e6
push ebx
push ebx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf4]
cmp dword [eax], ecx
jl 0x1001c4fd
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, 0xafcb06a9
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x1001c539
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c539
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x4292
setne cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x3c]
sub edx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
lea ecx, [esp + 0xf4]
setle al
mov dword [esp + 0x28], eax
call fcn.1001a726
mov dword [esp + 0x38], 0xffffffff
push 3
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
pop edi
jmp 0x1001c5af
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xc4], 0xe1757117
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001c59c
mov dword [esp + 0x10], ebx
jmp 0x1001c5ca
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1b4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001c5bb
mov dword [esp + 0xcc], 0x1b
jmp 0x1001c609
mov dword [esp + 0x10], 0xfffffffa
mov dword [esp + 0x10], ebx
jmp 0x1001c5fc
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x1b4], ebx
jne 0x1001c602
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x1001c5eb
dec dword [esp + 0xcc]
cmp dword [esp + 0xcc], 1
jl 0x1001c5dd
mov dword [esp + 0x28], 0xab2bc8f9
lea ecx, [esp + 0x100]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], 0x84225189
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x24], ebx
push edi
call fcn.10019e28
mov byte [esp + 0x204], 1
mov dword [esp + 0x20], ebx
jmp 0x1001c662
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x44], 0xebb0cb8c
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x1001c652
mov dword [esp + 0x20], ebx
jmp 0x1001c685
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x10110121
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x1001c66f
mov dword [esp + 0x20], ebx
jmp 0x1001c6a1
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x5c], 1
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 1
jl 0x1001c691
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x50]
je 0x1001c764
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x50], 0x4dd
jl 0x1001c6db
cmp dword [esp + 0x4c], ebx
je 0x1001c6db
xor eax, eax
inc eax
jmp 0x1001c6dd
mov eax, ebx
mov dword [esp + 0x30], eax
xor edx, edx
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x30]
add eax, 0xfc16
cmp eax, 0x5654
mov eax, dword [esp + 0x48]
setne dl
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
sub ecx, 0x3cb8
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x34071e99
setl al
imul eax, eax, 0xfffffff9
cmp eax, 6
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x44]
je 0x1001c73a
cmp dword [esp + 0x50], ebx
je 0x1001c73a
xor eax, eax
inc eax
jmp 0x1001c73c
mov eax, ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
sub ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
lea eax, [ecx - 0xa]
test eax, eax
je 0x1001c75b
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
xor ecx, ecx
inc ecx
jmp 0x1001c766
mov ecx, ebx
mov eax, dword [esp + 0x48]
add ecx, 0xa08d
imul ecx, eax
cmp ecx, dword [esp + 0x50]
jl 0x1001c7fe
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], ebx
jl 0x1001c7e3
push 4
lea ecx, [esp + 0x118]
call fcn.10019e28
mov dword [esp + 0x28], 0xe7179999
mov dword [esp + 0x10], ebx
jmp 0x1001c7b9
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 0x5b4d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001c7a3
mov eax, dword [esp + 0x114]
xor ecx, ecx
inc ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x114]
call fcn.1001a726
dec dword [esp + 0x18]
jns 0x1001c787
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c900
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
jmp 0x1001c900
mov dword [esp + 0x10], 0x686461d9
mov dword [esp + 0x34], 0xfffffffa
cmp dword [esp + 0x50], ebx
je 0x1001c88e
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 1
jl 0x1001c829
cmp dword [esp + 0x24], ebx
jne 0x1001c829
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x100]
cmp dword [eax + 8], ebx
je 0x1001c83d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
sub eax, 0x210ab9cb
jne 0x1001c84c
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
dec ecx
je 0x1001c88e
cmp dword [esp + 0x44], ebx
je 0x1001c88e
xor ecx, ecx
inc ecx
jmp 0x1001c890
mov ecx, ebx
xor eax, eax
cmp ecx, 0x33b75cab
setne al
xor ecx, ecx
cmp eax, 0x6eff5237
mov eax, dword [esp + 0x100]
setl cl
imul ecx, dword [eax + 8]
sub ecx, 0x34b72860
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x34]
je 0x1001c8d4
cmp dword [esp + 0x10], ebx
je 0x1001c8d4
xor ecx, ecx
inc ecx
jmp 0x1001c8d6
mov ecx, ebx
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x50]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x100]
mov byte [esp + 0x204], bl
call fcn.1001a726
mov dword [esp + 0x10], 0x68ec0ae9
mov dword [esp + 0x30], 0x9b7d6b59
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xfffffff3
jle 0x1001cb24
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10009690]
lea eax, [esp + 0x198]
push eax
lea eax, [esp + 0x18c]
mov dword [esp + 0x88], ebx
push eax
push ebx
lea ecx, [esp + 0x90]
mov dword [esp + 0x94], ebx
movdqu xmmword [esp + 0x194], xmm0
mov dword [esp + 0x98], ebx
call fcn.1001b55b
mov byte [esp + 0x204], 2
mov dword [esp + 0x30], 0xf8b243e5
mov dword [esp + 0x34], 0x509ca4f0
mov dword [esp + 0x28], 0xfda37b18
mov dword [esp + 0x18], ebx
jmp 0x1001c9b3
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x60], 7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001c9a3
mov dword [esp + 0x60], ebx
cmp dword [esp + 0x60], edi
jg 0x1001caff
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], 0xb3cf8132
lea ecx, [esp + 0x120]
push 2
call fcn.10019e28
push 2
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x1001ca08
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1001c9f2
mov eax, dword [esp + 0x60]
xor ecx, ecx
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
test eax, eax
mov eax, dword [esp + 0x120]
setns cl
cmp ecx, 0xffff
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp eax, 0x9a27
mov eax, dword [esp + 0x68]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x6c]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
cmp eax, dword [ecx + esi*4]
mov eax, dword [esp + 0x80]
setle dl
xor ecx, ecx
cmp edx, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x34]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
sete dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x24]
setle cl
xor eax, eax
cmp ecx, dword [edx + 4]
lea ecx, [esp + 0x120]
setl al
mov dword [esp + 0x30], eax
call fcn.1001a726
inc dword [esp + 0x60]
push 3
pop edi
cmp dword [esp + 0x60], edi
jle 0x1001c9d3
lea ecx, [esp + 0x80]
mov byte [esp + 0x204], bl
call fcn.1001a726
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff3
jg 0x1001c936
push 2
pop esi
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cb46
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
mov dword [esp + 0x10], ebx
jmp 0x1001cb5b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd0], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001cb4c
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cb78
push 1
call edi
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cb8e
push 1
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
push dword [esp + 0xd0]
movdqa xmm0, xmmword [0x10009680]
lea ecx, [esp + 0xd8]
mov dword [esp + 0x28], 0x2cb13638
xor eax, eax
mov dword [esp + 0x14], ebx
inc eax
mov dword [esp + 0x34], 0xfffffffb
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], 0x70b168f9
mov dword [esp + 0x34], 3
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1b8]
push eax
lea eax, [esp + 0x1ac]
mov dword [esp + 0xdc], ebx
push eax
push ebx
movdqu xmmword [esp + 0x1b4], xmm0
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
call fcn.1001b55b
mov dword [esp + 0x20], 0xf4e5
cmp dword [esp + 0x24], ebx
jne 0x1001cc6b
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
cmp eax, ecx
setle dl
xor ecx, ecx
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp edx, eax
setne cl
imul ecx, dword [esp + 0x34]
neg ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x18]
jge 0x1001cc5e
cmp dword [esp + 0x10], ebx
jne 0x1001cc5e
mov eax, ebx
jmp 0x1001cc61
xor eax, eax
inc eax
cmp eax, dword [esp + 0x28]
jl 0x1001cc6b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [esp + 0xd4]
setg dl
mov dword [ecx + 8], edx
cmp dword [esp + 0x24], edx
je 0x1001cca9
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cd0c
push 0x1392
push ebx
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
jmp 0x1001cd0c
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], ebx
jmp 0x1001ccf3
mov dword [esp + 0x18], ebx
jmp 0x1001ccd0
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x10c], 0xd258d033
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x1001ccbd
mov eax, dword [esp + 0x20]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x110]
mov dword [ecx + 8], eax
mov dword [esp + 0x28], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jge 0x1001ccb7
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cd0c
push ebx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ecx, [esp + 0xd4]
call fcn.1001a726
push esi
lea ecx, [esp + 0x130]
call fcn.10019e28
mov dword [esp + 0x28], 0xadae8c9f
mov dword [esp + 0x10], ebx
jmp 0x1001cd46
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x12c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001cd33
mov eax, dword [esp + 0x12c]
mov dword [eax + 4], ebx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], ebx
jne 0x1001cd69
inc dword [eax + 4]
cmp dword [eax + 4], 0x19
jl 0x1001cd56
lea ecx, [esp + 0x12c]
call fcn.1001a726
mov dword [esp + 0x10], ebx
jmp 0x1001cd91
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x98]
mov dword [eax + ecx*4], 0xb3c692be
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001cd7b
mov dword [esp + 0x28], 0x6579763
cmp dword [esp + 0x28], ebx
mov byte [esp + 0x17], bl
je 0x1001cdc0
cmp byte [esp + 0x17], 0
je 0x1001cdd5
push ebx
push ebx
call edi
push eax
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
jmp 0x1001cdd5
cmp byte [esp + 0x17], 0
je 0x1001cdd5
push 0xaf7
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov dword [esp + 0x10], 0xd6c05baf
xor edx, edx
mov dword [esp + 0x30], ebx
inc edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], ebx
jmp 0x1001ceb9
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], 0x43d2717f
mov dword [esp + 0x18], ebx
jmp 0x1001ce16
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x144], 0xfff8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001ce03
mov dword [esp + 0x18], 3
cmp dword [esp + 0x18], ebx
jl 0x1001ceb5
mov dword [esp + 0x24], 0xfe23a266
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x144]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x144]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x144]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x10], ebx
jne 0x1001cea0
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x144]
mov eax, dword [esp + 0x10]
cmp eax, 0xfffffffc
setg cl
imul ecx, dword [esp + 0x24]
test ecx, ecx
je 0x1001ce9c
cmp dword [esp + 0x10], ebx
jne 0x1001cea0
mov eax, ebx
jmp 0x1001cea2
mov eax, edx
add eax, 0xffff
mov dword [esp + 0x24], eax
dec dword [esp + 0x18]
jns 0x1001ce2f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x1001cdf1
mov dword [esp + 0x10], ebx
jmp 0x1001ced8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x164], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001cec9
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x28], 0xf845
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cf0e
push 0x690
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetMapMode]
mov dword [esp + 0x18], 0x1b
jmp 0x1001cf57
mov dword [esp + 0x10], 9
mov dword [esp + 0x10], ebx
jmp 0x1001cf4c
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cf48
push ebx
push 0x2157
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff8
jle 0x1001cf26
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0x14
jg 0x1001cf18
lea eax, [esp + 0x98]
push eax
push 0x65be
push ebx
call fcn.10020f59
mov dword [esp + 0x30], 0x96a162c9
add esp, 0xc
mov dword [esp + 0x20], 0x570a50b5
mov dword [esp + 0x10], 0xba75a592
mov dword [esp + 0x18], 0x717c9257
mov dword [esp + 0x34], 0x65aae70c
mov dword [esp + 0x30], 9
mov dword [esp + 0x10], ebx
jmp 0x1001cfbd
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1c0], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001cfaa
cmp dword [esp + 0x24], ebx
je 0x1001d013
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp eax, 0xbffb
setne cl
cmp ecx, dword [esp + 0x24]
jge 0x1001cfe9
cmp dword [esp + 0x24], ebx
je 0x1001cfe9
xor ecx, ecx
inc ecx
jmp 0x1001cfeb
mov ecx, ebx
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0x10]
setne dl
inc eax
cmp edx, eax
je 0x1001d013
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jne 0x1001d021
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x20], 0xf050
jle 0x1001d088
mov dword [esp + 0x28], 0x50714ba0
mov dword [esp + 0x20], 0xffffffea
jmp 0x1001d07c
mov dword [esp + 0x18], 0x74a6e8f5
xor edx, edx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp ecx, eax
setl dl
mov dword [esp + 0x18], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x16
jle 0x1001d03d
jmp 0x1001d192
mov dword [esp + 0x10], ebx
jmp 0x1001d0a1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x154], 0xb498
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001d08e
mov dword [esp + 0x24], ebx
jmp 0x1001d187
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001d0f4
push 0xa79
push 0x5ae
push 0x200e
push 0x1c85
push 0x10ce
push 0x8dc
push 0x2472
push 0x4d5
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Arc]
mov dword [esp + 0x20], ebx
jmp 0x1001d179
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x1001d12f
mov dword [esp + 0x18], ebx
jmp 0x1001d123
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001d11f
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x1001d10a
dec dword [esp + 0x10]
jns 0x1001d104
mov dword [esp + 0x10], ebx
jmp 0x1001d16f
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x1001d16b
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001d165
push 0x1acf
push 0x19ef
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawEdge]
dec dword [esp + 0x18]
jns 0x1001d13f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x1001d135
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ebx
jle 0x1001d0fa
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x27
jne 0x1001d0b1
mov eax, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
setge dl
mov eax, esi
sub eax, edx
sub eax, 0xa7f7
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x7e7
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
neg eax
cmp eax, 0x2cf3
setge cl
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov eax, dword [esp + 0x34]
cmp eax, 0xfffffffb
setg cl
sub ecx, 0x8a08
mov dword [esp + 0x20], ecx
imul eax, dword [esp + 0x20], 0x387e
add eax, dword [esp + 0x24]
neg eax
sbb eax, eax
xor esi, esi
neg eax
inc esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x98]
cmp dword [ecx + 8], 0xffff
mov dword [esp + 0x1c8], eax
jb 0x1001d282
xor eax, eax
mov edx, ebx
cmp dword [ecx], esi
setle al
xor ecx, ecx
imul eax, eax, 6
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
test eax, eax
setns cl
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x98]
jne 0x1001d284
mov edx, esi
xor eax, eax
cmp edx, dword [ecx + 4]
sete al
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
cmp eax, ecx
mov eax, dword [esp + 0x2c]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x1abe719c
setle al
imul eax, dword [esp + 0x1c]
test eax, eax
jne 0x1001d2df
mov eax, dword [esp + 0x98]
cmp dword [eax], ebx
mov eax, ebx
je 0x1001d2e1
mov eax, esi
mov dword [esp + 0x168], eax
lea ecx, [esp + 0x98]
or dword [esp + 0x204], 0xffffffff
call fcn.1001a726
mov dword [esp + 0x18], 0x96a162c9
mov dword [esp + 0x20], 0x570a50b5
mov dword [esp + 0x10], 0xba75a592
mov dword [esp + 0x24], 0x717c9257
mov dword [esp + 0x34], 0x65aae70c
mov dword [esp + 0x2c], 9
mov dword [esp + 0x1c], ebx
jmp 0x1001d345
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1cc], 0xfffffff9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x1001d332
cmp dword [esp + 0x18], ebx
je 0x1001d398