Function at 0x10018ebd
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1008aa4c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x208
push ebx
mov dword [esp + 0x38], 3
mov eax, edx
mov dword [esp + 0x38], 0xfffffff2
cmp dword [esp + 0x38], 0x1a
push esi
push edi
mov dword [esp + 0xa0], eax
mov dword [esp + 0x54], ecx
jl 0x1001a39e
mov edi, dword [sym.imp.USER32.dll_GetDC]
xor ebx, ebx
mov dword [esp + 0x10], 3
mov dword [esp + 0x10], 0xfffffff2
jmp 0x10018f49
mov dword [esp + 0x20], 0x5ba7723
mov dword [esp + 0x20], 6
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10018f45
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1a
jge 0x10018f23
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10009780]
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x1b0]
mov dword [esp + 0x24], 3
push eax
mov dword [esp + 0x1c], 0xac204e2d
lea ecx, [esp + 0xa0]
mov dword [esp + 0x28], 0xdebf889e
push ebx
movdqu xmmword [esp + 0x1b8], xmm0
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
call fcn.10018555
mov dword [esp + 0x2c], 0x338886a6
mov dword [esp + 0x28], 0xac06e326
mov dword [esp + 0x10], ebx
jmp 0x10018fd8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d0], 0xbab72157
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10018fc5
mov dword [esp + 0x10], ebx
jmp 0x10018ffb
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10018ff7
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 7
je 0x10018fe5
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x94]
cmp eax, dword [esi + 0xc]
setne cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, 0xbf5cbf79
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
sub ecx, dword [eax + 8]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, dword [esp + 0x28]
jle 0x10019069
cmp dword [esp + 0x28], ebx
je 0x10019069
xor edx, edx
lea ecx, [edx + 1]
jmp 0x1001906b
mov ecx, ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1d4], ecx
add eax, ecx
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x94]
call fcn.100170ce
mov dword [esp + 0x1c], 0xfffffff2
cmp dword [esp + 0x1c], 0x1a
jl 0x10019738
push dword [esp + 0x54]
movdqa xmm0, xmmword [0x10009740]
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x28], 0x5ba7723
push eax
mov dword [esp + 0x20], 0xbea12209
lea ecx, [esp + 0x84]
push ebx
movdqu xmmword [esp + 0x1a8], xmm0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
call fcn.10018555
xor ecx, ecx
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x10], ebx
inc ecx
jmp 0x1001910e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x60], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10019102
mov dword [esp + 0x10], ebx
jmp 0x1001912a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 0x6a6c65b0
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001911a
mov eax, dword [esp + 0x14]
xor ecx, ecx
dec dword [esp + 0x60]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
cmp eax, 0x74a5
mov eax, dword [esp + 0x78]
setge cl
xor edx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, 0xfffffffd
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
inc edx
cmp edx, ecx
mov ecx, 0xa0b8ee41
sbb eax, eax
xor edx, edx
neg eax
sub ecx, eax
mov eax, dword [esp + 0x14]
cmp eax, ecx
setge dl
xor ecx, ecx
cmp esi, edx
setle cl
xor edx, edx
xor eax, eax
inc edx
cmp ecx, edx
setle al
mov dword [esp + 0x14], eax
cmp dword [esp + 0x64], ebx
je 0x100191c8
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], ebx
jne 0x100191ca
mov edx, ebx
mov eax, dword [esp + 0x78]
xor ecx, ecx
push 5
pop edi
sub edx, dword [eax]
mov eax, dword [esp + 0x64]
sub edx, eax
mov eax, dword [esp + 0x64]
cmp eax, edx
setg cl
cmp ecx, edi
jb 0x100191f5
cmp dword [esp + 0x64], ebx
jne 0x100191f5
xor esi, esi
mov edx, ebx
inc esi
jmp 0x100191fa
xor esi, esi
inc esi
mov edx, esi
mov eax, dword [esp + 0x78]
xor ecx, ecx
cmp edx, dword [eax + 0xc]
mov eax, 0x8726
setne cl
sub eax, ecx
je 0x10019217
mov edx, esi
cmp dword [esp + 0x64], ebx
jne 0x10019219
mov edx, ebx
mov ecx, dword [esp + 0x78]
xor eax, eax
cmp dword [ecx + 8], edx
setg al
mov dword [ecx + 8], eax
lea ecx, [esp + 0x78]
call fcn.100170ce
push 2
mov dword [esp + 0x24], 6
lea ecx, [esp + 0xe4]
mov dword [esp + 0x18], esi
pop esi
push esi
call fcn.1001704c
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
cmp dword [esp + 0x10], esi
jge 0x1001926e
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe0]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
jmp 0x10019254
mov dword [esp + 0x14], esi
jmp 0x100192a0
mov dword [esp + 0x10], 0x2443250e
mov dword [esp + 0x10], ebx
jmp 0x10019296
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe0]
cmp dword [eax + ecx*4], ebx
jne 0x1001929c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x10019282
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe4
jg 0x10019274
lea ecx, [esp + 0xe0]
call fcn.100170ce
mov dword [esp + 0x14], 0x20fe
lea ecx, [esp + 0xec]
mov dword [esp + 0x2c], 0xfffffffa
xor esi, esi
mov dword [esp + 0x20], 0x50a4ba31
inc esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], esi
push 3
call fcn.1001704c
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x28], ebx
jmp 0x10019307
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xec]
mov dword [eax + ecx*4], 0x456cfc4f
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 3
jl 0x100192f1
cmp dword [esp + 0x14], ebx
je 0x10019450
xor edx, edx
inc edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], 0x895196ee
mov dword [esp + 0x44], 0xc57e71f0
mov dword [esp + 0x24], 0x1bf07968
mov dword [esp + 0x38], 3
mov dword [esp + 0x38], 0xfffffff9
mov dword [esp + 0x28], ebx
jmp 0x10019361
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x58], 9
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edx
jl 0x10019351
mov dword [esp + 0x14], 0xffffffec
jmp 0x10019440
mov dword [esp + 0x30], ebx
or eax, 0xffffffff
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 0x2b000250
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x5c]
inc dword [esp + 0x5c]
test eax, eax
je 0x100193b7
mov esi, edx
cmp dword [esp + 0x30], ebx
jne 0x100193b9
mov esi, ebx
mov ecx, dword [esp + 0x30]
mov edi, edx
mov eax, dword [esp + 0x58]
sub ecx, 7
inc dword [esp + 0x58]
cmp eax, ecx
cmovle edi, ebx
cmp dword [esp + 0x28], ebx
je 0x100193db
cmp dword [esp + 0x10], ebx
jne 0x100193dd
mov edx, ebx
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0x44]
jl 0x100193fb
cmp dword [esp + 0x20], ebx
jne 0x100193fb
xor edx, edx
mov ecx, ebx
inc edx
jmp 0x10019400
xor edx, edx
inc edx
mov ecx, edx
mov eax, dword [esp + 0x14]
imul eax, ecx
sub eax, 0x7497
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp edi, eax
setl cl
sub ecx, 0xed6c34f1
neg ecx
sbb ecx, ecx
inc ecx
sub esi, ecx
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x130], eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe2
jle 0x10019374
jmp 0x10019570
push esi
lea ecx, [esp + 0xb4]
call fcn.1001704c
xor edx, edx
inc edx
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], ebx
jmp 0x10019498
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019486
mov dword [esp + 0x10], ebx
jmp 0x100194b3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x84], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100194a4
mov dword [esp + 0x10], ebx
jmp 0x1001955a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb0]
cmp dword [eax + ecx*4], ebx
jne 0x10019504
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
cmp dword [eax], ebx
je 0x100194f8
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0xb0]
setg cl
imul ecx, dword [eax + edx*4]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0xc
jmp 0x1001954c
cmp dword [esp + 0x84], ebx
jne 0x10019553
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffd
jge 0x1001953f
inc dword [esp + 0x10]
push 1
pop edx
cmp dword [esp + 0x10], ebx
jle 0x100194c2
lea ecx, [esp + 0xb0]
call fcn.100170ce
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
or esi, 0xffffffff
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0xec]
mov dword [esp + 0x21c], esi
call fcn.100170ce
mov byte [esp + 0x1b], bl
lea ecx, [esp + 0x17c]
mov dword [esp + 0x24], 0xfffffffb
mov dword [esp + 0x24], esi
push 2
call fcn.1001704c
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebx
jmp 0x100195e5
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1f4], 0x6210b999
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x100195d2
mov dword [esp + 0x14], ebx
jmp 0x10019608
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x17c]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100195f2
xor ecx, ecx
mov dword [esp + 0x14], ebx
inc ecx
jmp 0x10019624
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10019618
mov dword [esp + 0x14], ebx
jmp 0x10019643
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1b8], 0xa221525
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10019630
cmp dword [esp + 0x200], ebx
jne 0x1001965f
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov eax, ebx
je 0x10019661
mov eax, ecx
mov dword [esp + 0x1c0], eax
lea ecx, [esp + 0x17c]
call fcn.100170ce
cmp byte [esp + 0x1b], 0
je 0x10019721
xor edx, edx
lea ecx, [esp + 0xd4]
inc edx
push edx
call fcn.1001704c
mov dword [esp + 0x24], 0x6fe23a26
xor edx, edx
mov dword [esp + 0x24], 0xf4039ee4
inc edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 0x7d6c5051
mov dword [esp + 0x10], ebx
jmp 0x100196ce
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100196b8
mov dword [esp + 0x10], ebx
jmp 0x100196ed
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1dc], 3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100196da
mov eax, dword [esp + 0xd4]
xor ecx, ecx
cmp dword [eax], 0x6b65
sete cl
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0xd4]
dec dword [esp + 0x20]
call fcn.100170ce
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x1a
jge 0x1001909a
mov edi, dword [sym.imp.USER32.dll_GetDC]
jmp 0x1001973b
or esi, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], 0x15252cb1
inc eax
lea ecx, [esp + 0xf8]
push eax
call fcn.1001704c
xor edx, edx
inc edx
mov dword [esp + 0x21c], edx
mov dword [esp + 0x14], ebx
jmp 0x10019772
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x88], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10019763
mov dword [esp + 0x14], ebx
jmp 0x10019792
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x178], 0x3423637b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001977f
mov dword [esp + 0x14], ebx
jmp 0x100197b4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xf8]
mov dword [eax + ecx*4], 0xd0336d06
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001979e
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 2
jg 0x10019917
push 4
lea ecx, [esp + 0xcc]
call fcn.1001704c
xor edi, edi
mov byte [esp + 0x21c], 2
inc edi
lea ecx, [esp + 0x160]
push edi
call fcn.1001704c
mov dword [esp + 0x10], ebx
jmp 0x1001980b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 0xbf118c84
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x100197f5
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001982d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001981b
mov eax, dword [esp + 0x14]
cmp dword [esp + eax*4 + 0x88], ebx
jne 0x100198bc
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x88]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x88]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x88]
cmp eax, edx
mov eax, dword [esp + 0x14]
setg cl
sub ecx, dword [esp + eax*4 + 0x88]
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
mov edx, ecx
xor ecx, ecx
mov dword [esp + eax*4 + 0x88], edx
mov eax, dword [esp + 0x14]
cmp edx, eax
sete cl
xor eax, eax
inc eax
cmp ecx, eax
ja 0x100198ae
cmp dword [esp + 0x14], ebx
jne 0x100198ae
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x88]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
je 0x100198c2
cmp dword [esp + 0x14], ebx
jne 0x100198cd
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x88]
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0x160]
dec dword [eax + 0xc]
mov eax, dword [esp + 0xf8]
dec dword [eax]
call fcn.100170ce
xor eax, eax
lea ecx, [esp + 0xc8]
inc eax
mov byte [esp + 0x21c], al
call fcn.100170ce
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x100197c9
mov edi, dword [sym.imp.USER32.dll_GetDC]
lea ecx, [esp + 0xf8]
mov dword [esp + 0x21c], esi
call fcn.100170ce
xor eax, eax
mov dword [esp + 0x24], 0x5ba7723
inc eax
lea ecx, [esp + 0xa4]
push eax
call fcn.1001704c
xor edx, edx
inc edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], 0xa7bf
mov dword [esp + 0x1c], ebx
jmp 0x1001996d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov dword [eax + ecx*4], 0x7a7c2039
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x10019957
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], edx
jg 0x10019a31
mov dword [esp + 0x1c], 0xb95a
mov dword [esp + 0x20], 0xa5308633
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub ecx, 0xbef
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, edx
setge cl
cmp ecx, 6
jl 0x100199d6
cmp dword [esp + 0x1c], ebx
je 0x100199d6
xor eax, eax
lea ecx, [eax + 1]
jmp 0x100199d8
mov ecx, ebx
mov eax, dword [esp + 0x20]
xor edx, edx
imul eax, ecx
inc edx
xor ecx, ecx
cmp eax, edx
mov eax, 0xbb101eb6
setle cl
cmp eax, ecx
mov eax, dword [esp + 0x20]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov ecx, 0xfffb
setg dl
xor eax, eax
cmp edx, 0x466a
setge al
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
xor eax, eax
cmp ecx, dword [esp + 0x24]
setne al
add eax, dword [esp + 0x10]
cmp esi, eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x10019a76
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x10019a76
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019a70
push 0x452
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SetLayout]
dec dword [esp + 0x10]
jns 0x10019a3b
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019a8d
push 0x235a
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
lea ecx, [esp + 0xa4]
call fcn.100170ce
mov dword [esp + 0x24], 0x4d8e5ccc
lea ecx, [esp + 0x188]
mov dword [esp + 0x24], 0x394a2a4f
push 2
call fcn.1001704c
mov dword [esp + 0x20], 0x4ad72d76
mov dword [esp + 0x10], ebx
jmp 0x10019ad8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x204], 0xf75d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10019ac5
mov dword [esp + 0x10], ebx
jmp 0x10019afb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x188]
mov dword [eax + ecx*4], 0x832937a3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10019ae5
inc dword [esp + 0x20]
lea ecx, [esp + 0x188]
call fcn.100170ce
mov dword [esp + 0x14], 0x15252cb1
xor edx, edx
mov dword [esp + 0x10], 0xfffffff9
inc edx
mov dword [esp + 0x24], 0xd7feae21
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ebx
jmp 0x10019b4b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x48], 0xa2a3b3f3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10019b3b
mov dword [esp + 0x10], ebx
jmp 0x10019b6b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1c4], 0x76038591
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10019b58
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov eax, dword [esp + 0x4c]
cmp eax, 0xebf9
mov eax, esi
setle cl
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c4], edx
xor edx, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
setle dl
inc edx
je 0x10019bba
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x4c], ebx
je 0x10019bd9
cmp dword [esp + 0x30], ebx
je 0x10019bd9
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x10019bde
xor ecx, ecx
mov eax, ebx
inc ecx
imul eax, eax, 0xfffffff9
test eax, eax
je 0x10019bed
mov eax, ecx
cmp dword [esp + 0x20], ebx
jne 0x10019bef
mov eax, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jl 0x10019c0f
mov dword [esp + 0x20], 0xb0d5
inc dword [esp + 0x20]
dec dword [esp + 0x10]
jns 0x10019bfd
push ecx
lea ecx, [esp + 0xc0]
call fcn.1001704c
mov dword [esp + 0x21c], 3
mov dword [esp + 0x24], 0x7f825e7a
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019c5e
push 0xb65
push 0xdfe
push 0x26d9
push 0x17d5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_Ellipse]
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019c7a
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 3
jge 0x10019c9b
xor edx, edx
inc edx
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x6c], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10019c88
push 3
lea ecx, [esp + 0x114]
call fcn.1001704c
mov dword [esp + 0x10], 0x2667a876
mov dword [esp + 0x20], 0xf094
mov dword [esp + 0x1c], ebx
jmp 0x10019cd5
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], 0xfdf99ff6
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x10019cbf
push 2
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10019d15
mov dword [esp + 0x1c], 0x6a485bf2
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], ebx
jl 0x10019d0d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x110]
cmp dword [eax + ecx*4], ebx
jne 0x10019d0d
dec dword [esp + 0x1c]
jns 0x10019cf7
inc dword [esp + 0x20]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x10019ce5
lea ecx, [esp + 0x110]
call fcn.100170ce
xor edx, edx
mov dword [esp + 0x14], ebx
inc edx
jmp 0x10019d43
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x194], 0x3423637b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10019d30
mov dword [esp + 0x14], ebx
jmp 0x10019d65
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0xd0336d06
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10019d4f
mov dword [esp + 0x14], ebx
jmp 0x10019fcb
push 2
lea ecx, [esp + 0x140]
call fcn.1001704c
xor edx, edx
inc edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1c], ebx
jmp 0x10019da1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x10019d8f
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], ebx
jl 0x10019dc4
mov dword [esp + 0x20], 0x8adae8c9
inc dword [esp + 0x20]
dec dword [esp + 0x1c]
jns 0x10019db2
lea ecx, [esp + 0x13c]
call fcn.100170ce
push 4
lea ecx, [esp + 0x108]
call fcn.1001704c
xor eax, eax
mov byte [esp + 0x21c], 4
inc eax
lea ecx, [esp + 0x148]
push eax
call fcn.1001704c
mov dword [esp + 0x10], ebx
jmp 0x10019e12
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 0xbf118c84
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10019dfc
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x10019e34
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019e22
mov dword [esp + 0x1c], 0xfb871c7b
mov dword [esp + 0x24], 0x5610a143
mov dword [esp + 0x1c], ebx
jmp 0x10019e63
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1e4], 0xfffffffd
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x10019e50
mov dword [esp + 0x1c], 3
cmp dword [esp + 0x1c], ebx
jl 0x10019eaa
mov dword [esp + 0x24], 0xba13b288
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019e99
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
xor edx, edx
inc edx
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1e4], edx
dec dword [esp + 0x1c]
jns 0x10019e78
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019ec8
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_CreateEnhMetaFileW]
mov eax, dword [esp + 0x14]
cmp dword [esp + eax*4 + 0x6c], ebx
jne 0x10019f3c
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x6c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x6c]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x6c]
cmp eax, edx
mov eax, dword [esp + 0x14]
setg cl
sub ecx, dword [esp + eax*4 + 0x6c]
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
mov edx, ecx
xor ecx, ecx
mov dword [esp + eax*4 + 0x6c], edx
mov eax, dword [esp + 0x14]
cmp edx, eax
sete cl
xor eax, eax
inc eax
cmp ecx, eax
ja 0x10019f2e
cmp dword [esp + 0x14], ebx
jne 0x10019f2e
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x6c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
je 0x10019f42
cmp dword [esp + 0x14], ebx
jne 0x10019f4a
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x6c]
mov eax, dword [esp + 0x104]
dec dword [eax + 0xc]
mov dword [esp + 0x10], 0x824a8c6a
mov dword [esp + 0x24], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019f72
push ebx
call dword [sym.imp.USER32.dll_DestroyCursor]
mov dword [esp + 0x10], 0xfffffff5
jmp 0x10019f97
mov dword [esp + 0x24], ebx
xor edx, edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setg dl
mov dword [esp + 0x24], edx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffeb
je 0x10019f7c
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x148]
dec dword [eax]
call fcn.100170ce
lea ecx, [esp + 0x104]
mov byte [esp + 0x21c], 3
call fcn.100170ce
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x10019d74
lea ecx, [esp + 0xbc]
mov dword [esp + 0x21c], esi
call fcn.100170ce
mov dword [esp + 0x1c], 0xcf54c3c6
xor edx, edx
mov dword [esp + 0x10], 0xfffa
inc edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0x8331c587
mov dword [esp + 0x38], 0xfffffff7
mov dword [esp + 0x44], 0xd2964071
mov dword [esp + 0x24], 9
mov dword [esp + 0x24], 0x495dd686
mov dword [esp + 0x20], 0xffff
mov eax, dword [esp + 0x1c]
add eax, 8
jne 0x1001a045
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
inc eax
cmp eax, 2
jne 0x1001a0c3
cmp dword [esp + 0x10], ebx
jne 0x1001a0c3
mov dword [esp + 0x24], 0x828c040c
lea ecx, [esp + 0x154]
push edx
call fcn.1001704c
xor edx, edx
mov dword [esp + 0x1c], ebx
inc edx
jmp 0x1001a0a8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x1001a092
inc dword [esp + 0x20]
lea ecx, [esp + 0x154]
call fcn.100170ce
jmp 0x1001a190
mov dword [esp + 0x24], 0xb705618d
mov dword [esp + 0x3c], 0x1dc630de
mov dword [esp + 0x10], ebx
jmp 0x1001a185
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0x81f6ed73
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x10], ebx
jne 0x1001a10f
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sub ecx, eax
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0x10]
test ecx, ecx
mov ecx, ebx
je 0x1001a111
mov ecx, edx
xor eax, eax
cmp ecx, 0x7aebb1bb
setg al
cmp esi, eax
sbb eax, eax
neg eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x9773
setl al
sub eax, dword [esp + 0x24]
cmp eax, edx
je 0x1001a14e
mov eax, edx
cmp dword [esp + 0x10], ebx
jne 0x1001a150
mov eax, ebx
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
cmp eax, ecx
push 1
setne dl
xor eax, eax
cmp edx, 0xe96f
pop edx
setl al
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x24
jg 0x1001a0dc
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a1a7
push 0x235a
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
mov dword [esp + 0x24], 6
xor edx, edx
mov dword [esp + 0x1c], 0xcf54c3c6
inc edx
mov dword [esp + 0x10], 0xfffa
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0x8331c587
mov dword [esp + 0x38], 0xfffffff7
mov dword [esp + 0x44], 0xd2964071
mov dword [esp + 0x24], 9
mov dword [esp + 0x24], 0x495dd686
mov dword [esp + 0x20], 0xffff
mov eax, dword [esp + 0x1c]
add eax, 8
jne 0x1001a20b
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
inc eax
cmp eax, 2
jne 0x1001a289
cmp dword [esp + 0x10], ebx
jne 0x1001a289
mov dword [esp + 0x24], 0x828c040c
lea ecx, [esp + 0x16c]
push edx
call fcn.1001704c
xor edx, edx
mov dword [esp + 0x1c], ebx
inc edx
jmp 0x1001a26e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x1001a258
inc dword [esp + 0x20]
lea ecx, [esp + 0x16c]
call fcn.100170ce
jmp 0x1001a356
mov dword [esp + 0x24], 0xb705618d
mov dword [esp + 0x3c], 0x1dc630de
mov dword [esp + 0x10], ebx
jmp 0x1001a34b
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0x81f6ed73
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x10], ebx
jne 0x1001a2d5
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sub ecx, eax
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0x10]
test ecx, ecx
mov ecx, ebx
je 0x1001a2d7
mov ecx, edx
xor eax, eax
cmp ecx, 0x7aebb1bb
setg al
cmp esi, eax
sbb eax, eax
neg eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x9773
setl al
sub eax, dword [esp + 0x24]
cmp eax, edx
je 0x1001a314
mov eax, edx
cmp dword [esp + 0x10], ebx
jne 0x1001a316
mov eax, ebx
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
cmp eax, ecx
push 1
setne dl
xor eax, eax
cmp edx, 0xe96f
pop edx
setl al
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x24
jg 0x1001a2a2
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a36d
push 0x235a
push ebx
call dword [sym.imp.USER32.dll_CharLowerBuffW]
push 0x345b
lea eax, [esp + 0x3b]
mov byte [esp + 0x3b], bl
push eax
push ebx
call fcn.1001dcde
add esp, 0xc
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 0x1a
jge 0x10018f11
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x54]
cdq
mov esi, 0x3e8
idiv esi
mov esi, edx
mov edi, eax
call fcn.10018e4b
mov ecx, dword [esp + 0x214]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret