Function at 0x10017af1
Capabilities:
Get geographical location
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10078530
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x220
push ebx
mov dword [esp + 0x1c], 0x10b999fb
push esi
mov dword [esp + 0xc], 0x4abc2489
xor esi, esi
mov dword [esp + 0xc], 0xfffffffd
inc esi
mov dword [esp + 0xc], esi
xor ebx, ebx
mov dword [esp + 0x28], 0x294b
mov dword [esp + 0x10], 8
push edi
mov dword [esp + 0xc4], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], ebx
jmp 0x10017b6a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x184], 0x32b7b88c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x10017b57
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jne 0x10017bad
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
je 0x10017b9b
cmp dword [esp + 0x24], ebx
jne 0x10017b9d
mov eax, ebx
mov dword [esp + 0x10], eax
mov ecx, ebx
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jg 0x10017baf
mov ecx, esi
mov eax, dword [esp + 0x24]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x24]
push 2
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
add ecx, dword [esp + 0x194]
mov dword [esp + 0x188], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
cmp eax, ecx
lea ecx, [esp + 0xac]
setne dl
mov dword [esp + 0x18], edx
call fcn.10015dbf
mov dword [esp + 0x14], 0xeaa32b1c
mov dword [esp + 0x2c], 6
mov dword [esp + 0x14], ebx
jmp 0x10017c2c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10017c1a
mov dword [esp + 0x14], ebx
jmp 0x10017d34
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x28], 4
mov dword [esp + 0x10], 0xf039d3cd
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], bl
je 0x10017c6c
push 0x1b82
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x10017d30
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x2c], 0xbc00eadd
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
neg esi
mov eax, dword [esp + 0xa8]
sbb esi, esi
xor edx, edx
neg esi
cmp esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp dword [edi + 4], 0xea0c
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
setne dl
sub edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x10]
cmp edx, eax
setg cl
dec ecx
cmp ecx, dword [edi + 4]
jl 0x10017ce8
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
xor edx, edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 4]
mov eax, dword [esp + 0xa8]
setle dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
setge cl
cmp ecx, 0xabbf
je 0x10017d17
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], 0xb332e0c2
dec dword [esp + 0x1c]
jns 0x10017c81
xor esi, esi
inc esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10017c3c
lea ecx, [esp + 0xa8]
call fcn.100165dc
mov dword [esp + 0x28], 5
lea ecx, [esp + 0x128]
push esi
call fcn.10015dbf
mov dword [esp + 0x14], ebx
jmp 0x10017d7b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x128]
mov dword [eax + ecx*4], 0x21aa2910
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10017d65
push 0xfffffffffffffff8
mov dword [esp + 0x2c], ebx
pop edi
jmp 0x10017e3f
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], 0xfffffffc
mov dword [esp + 0x24], 0xb6cd
mov dword [esp + 0x10], 0x56a218f0
mov dword [esp + 0x14], 2
jmp 0x10017e34
mov dword [esp + 0x10], 0x5e1abe8f
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x18], 0xbf35dd75
mov dword [esp + 0x1c], ebx
jmp 0x10017dec
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x20c], edi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x10017ddd
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
jmp 0x10017e1c
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffed
jge 0x10017e10
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x128]
mov dword [eax], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xe
jle 0x10017dbf
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0xfffffff5
jne 0x10017d8d
lea ecx, [esp + 0x128]
call fcn.100165dc
mov dword [esp + 0x18], 0x69fdf99f
lea ecx, [esp + 0x104]
push 3
call fcn.10015dbf
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], ebx
jmp 0x10017e8c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10017e76
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x10017ed1
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], bl
je 0x10017ebb
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x104]
cmp dword [eax + ecx*4], ebx
jne 0x10017ed1
dec dword [esp + 0x14]
jns 0x10017ea7
lea ecx, [esp + 0x104]
call fcn.100165dc
push dword [esp + 0x50]
movdqa xmm0, xmmword [0x10007cb0]
lea eax, [esp + 0x1c8]
push eax
lea eax, [esp + 0x1bc]
mov dword [esp + 0x88], ebx
push eax
push ebx
lea ecx, [esp + 0x90]
mov dword [esp + 0x94], ebx
movdqu xmmword [esp + 0x1c4], xmm0
mov dword [esp + 0x98], ebx
call fcn.100172d4
mov dword [esp + 0x234], ebx
lea ecx, [esp + 0xec]
mov dword [esp + 0x18], 4
push 3
call fcn.10015dbf
mov dword [esp + 0x10], 0x84eb300a
mov dword [esp + 0x14], ebx
jmp 0x10017f65
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xec]
mov dword [eax + ecx*4], 0x86e871d9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10017f4f
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x10017f88
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetWindowOrgEx]
mov dword [esp + 0x18], 0x14
cmp dword [esp + 0x18], 0x10
jne 0x10018096
xor edi, edi
mov dword [esp + 0x28], 0xe1ca2961
mov dword [esp + 0x10], 0xe44142b9
mov dword [esp + 0x28], ebx
jmp 0x10018073
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], ebx
jmp 0x10018064
mov dword [esp + 0x2c], 0x478c9dff
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x9c7c6f1f
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], eax
je 0x10017ff7
mov eax, dword [esp + 0xec]
mov esi, ebx
cmp dword [eax + 8], ebx
je 0x10017ffa
lea esi, [edi + 1]
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0xec]
cmp esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x28]
setl dl
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
neg esi
sbb esi, esi
xor ecx, ecx
neg esi
sub esi, eax
mov eax, dword [esp + 0x18]
cmp eax, 0xdc6d
mov eax, dword [esp + 0x18]
setne cl
imul esi, ecx
add esi, 0xfffffffd
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, eax
mov eax, dword [esp + 0x2c]
setge dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [esp + 0x10], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x10017fc7
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jle 0x10017fb6
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0x10
je 0x10017f9d
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor esi, esi
inc esi
lea ecx, [esp + 0xec]
call fcn.100165dc
mov dword [esp + 0x28], 0xb110c93b
push 0xfffffffffffffffa
pop eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], ebx
jmp 0x100181f0
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0xe9942c3b
mov dword [esp + 0x10], 0x1361131e
mov dword [esp + 0x14], ebx
jmp 0x100180ff
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1f4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x100180f0
mov dword [esp + 0x24], 3
cmp dword [esp + 0x24], ebx
jl 0x100181ec
mov eax, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
sub ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x1f4], ecx
mov eax, dword [esp + 0xa4]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
sub ecx, 0x3efc
neg ecx
sbb ecx, ecx
xor edx, edx
mov eax, dword [esp + eax*4 + 0x98]
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 0xfffffffd
setl dl
sub edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov eax, dword [esp + eax*4 + 0x98]
cmp eax, edx
setle cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + eax*4 + 0x98]
mov eax, dword [esp + 0x10]
cmp eax, 0x846c
setge cl
add edx, ecx
mov dword [esp + 0x10], edx
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x100181e2
call edi
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
dec dword [esp + 0x24]
jns 0x10018118
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0x1b
jg 0x100180d6
mov dword [esp + 0x18], 4
cmp dword [esp + 0x18], 0xfffffff2
jle 0x100183c0
mov esi, dword [esp + 0x80]
mov dword [esp + 0x28], 0x90c4d8e5
mov dword [esp + 0x10], 0xfffffffb
mov dword [esp + 0x14], ebx
jmp 0x1001823e
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x17c], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001822b
mov dword [esp + 0x28], 1
cmp dword [esp + 0x28], ebx
jl 0x100182a2
push 3
lea ecx, [esp + 0x154]
call fcn.10015dbf
mov dword [esp + 0x2c], 0xfffffffc
mov dword [esp + 0x14], ebx
jmp 0x10018285
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001826f
dec dword [esp + 0x10]
lea ecx, [esp + 0x150]
call fcn.100165dc
dec dword [esp + 0x28]
jns 0x10018253
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 2
mov dword [esp + 0x24], 3
cmp dword [esp + 0x24], ebx
jl 0x1001832b
push 2
lea ecx, [esp + 0x120]
call fcn.10015dbf
mov dword [esp + 0x14], ebx
jmp 0x100182ed
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], 3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100182d7
mov edx, dword [esp + 0x11c]
mov dword [edx + 4], ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], 0x92c5eb20
inc dword [edx + 4]
cmp dword [edx + 4], 3
jle 0x100182fe
lea ecx, [esp + 0x11c]
call fcn.100165dc
dec dword [esp + 0x24]
jns 0x100182c3
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp ecx, eax
setl dl
cmp edx, dword [esp + 0x24]
jl 0x1001834b
cmp dword [esp + 0x18], ebx
je 0x1001834b
xor ecx, ecx
inc ecx
jmp 0x1001834d
mov ecx, ebx
mov eax, dword [esp + 0x24]
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x18]
setge dl
xor ecx, ecx
shl edx, 2
cmp eax, edx
setg cl
add ecx, dword [esp + 0x18]
jne 0x10018376
cmp dword [esp + 0x24], ebx
jne 0x10018376
mov ecx, ebx
jmp 0x10018379
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x24]
xor edx, edx
add eax, 3
add ecx, eax
imul ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x24]
setle cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp dword [esp + 0x10], eax
setg cl
mov dword [esi + 8], ecx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff2
jg 0x10018215
or dword [esp + 0x234], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.100165dc
xor esi, esi
inc esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], 0xfffffff9
mov dword [esp + 0x14], ebx
jmp 0x100183f5
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x38], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100183e9
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001840e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCommState]
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jg 0x1001849e
push 0xfffffffffffffffe
pop edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x38], ebx
jne 0x10018439
mov eax, dword [esp + 0x18]
mov edx, ebx
cmp dword [esp + eax*4 + 0x38], ebx
je 0x1001843b
mov edx, esi
mov ecx, dword [esp + 0x10]
xor eax, eax
add ecx, dword [esp + 0x18]
neg ecx
cmp ecx, 0x372ba29f
setl al
cmp edx, eax
jl 0x1001845c
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x1001845e
mov edx, esi
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x38]
cmp eax, edx
mov eax, dword [esp + 0x18]
setge cl
cmp ecx, 0x9b3a00d0
sbb ecx, ecx
neg ecx
add ecx, dword [esp + eax*4 + 0x38]
xor eax, eax
cmp ecx, 0x4475
setle al
mov dword [esp + 0x10], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x1001841f
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x28], 0xd4e06482
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x28], ebx
jmp 0x100184c7
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x160], 0xffffffff
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jl 0x100184b4
mov dword [esp + 0x28], 0x17
jmp 0x10018607
mov dword [esp + 0x1c], 0x6d4f2887
mov dword [esp + 0x10], 0xad0d7276
mov dword [esp + 0x1c], ebx
jmp 0x10018501
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x70], 0xe446df3
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x100184f1
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], ebx
jl 0x10018603
push dword [esp + 0x50]
movdqa xmm0, xmmword [0x10007ca0]
lea eax, [esp + 0x1a8]
push eax
lea eax, [esp + 0x19c]
mov dword [esp + 0xc0], ebx
push eax
push ebx
lea ecx, [esp + 0xc8]
mov dword [esp + 0xcc], ebx
movdqu xmmword [esp + 0x1a4], xmm0
mov dword [esp + 0xd0], ebx
call fcn.100172d4
mov dword [esp + 0x10], 0xaea0
mov dword [esp + 0x2c], 0x99da9727
cmp dword [esp + 0x28], ebx
je 0x1001858a
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0xb8]
dec ecx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
cmp ecx, eax
setne dl
add edx, 0xef8a
mov dword [esp + 0x10], edx
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setl dl
sub edx, 3
neg edx
mov eax, dword [esp + eax*4 + 0x70]
sbb edx, edx
inc edx
mov dword [esp + 0x10], edx
xor edx, edx
cmp eax, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
sete dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x160], ecx
lea ecx, [esp + 0xb8]
call fcn.100165dc
dec dword [esp + 0x1c]
jns 0x10018516
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 5
jne 0x100184db
mov dword [esp + 0x14], ebx
jmp 0x1001865c
mov dword [esp + 0x10], 3
mov dword [esp + 0x10], 0xfffffff7
mov dword [esp + 0x10], 0x9b41dbc4
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], 0x5e40c883
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 0x1d127a4e
mov dword [esp + 0x10], 0xb167d3d8
inc dword [esp + 0x10]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10018618
mov dword [esp + 0x28], 0xbf34fda0
mov eax, 0x3e0566a9
mov dword [esp + 0x14], 9
mov dword [esp + 0x10], 0x45d811f0
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], 0xededb5ca
mov dword [esp + 0x10], 0x8dd44ad3
mov dword [esp + 0x10], 0x10fecafe
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
push 0xfffffffffffffffe
mov dword [esp + 0x150], eax
pop ecx
mov dword [esp + 0x1c], 0xf6e2
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x110]
mov dword [esp + 0x10], 0x7626a9d9
push esi
call fcn.10015dbf
push 2
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x100186fc
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x78], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x100186f0
mov dword [esp + 0x18], ebx
jmp 0x1001871a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10018708
mov dword [esp + 0x14], ebx
jmp 0x10018736
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x78], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10018726
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x140]
mov eax, dword [esp + 0x110]
mov eax, dword [eax]
add eax, 8
jne 0x10018769
mov eax, ebx
cmp dword [esp + 0x7c], ebx
je 0x1001876b
mov eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp esi, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, esi
mov eax, dword [esp + 0x7c]
setle cl
sub eax, ecx
lea ecx, [esp + 0x110]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
call fcn.100165dc
mov dword [esp + 0x18], 0x708ef6b8
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0x819d3388
push 0xfffffffffffffffe
mov dword [esp + 0x30], 0xb35b6890
pop eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0xfffffff9
mov dword [esp + 0x14], ebx
jmp 0x100187db
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x54], 0x7e06985b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100187cb
cmp dword [esp + 0x18], ebx
jne 0x10018810
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x18]
sub eax, dword [esp + 0x18]
sub eax, 0x66b
mov eax, ebx
je 0x10018812
mov eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x54], ebx
jne 0x10018828
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [esp + 0x18]
setne dl
sub ecx, 8
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setg al
cmp eax, 0xad46
jg 0x100189d2
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x2c], ebx
jmp 0x1001889d
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x30], 0xd9cec61c
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
jl 0x1001888d
cmp dword [esp + 0x1c], ebx
je 0x100188b5
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setl dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, 0x19c36c1
setge cl
xor edx, edx
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setg dl
cmp edx, dword [esp + 0x30]
jg 0x10018947
mov eax, ebx
cmp dword [esp + 0x30], ebx
je 0x10018949
mov eax, esi
mov edx, dword [esp + 0x18]
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffc
cmp eax, edx
mov eax, dword [esp + 0x30]
setne cl
xor edx, edx
cmp ecx, esi
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x30]
setl cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
sete cl
cmp ecx, 8
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
add edx, 0x10000
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xffcb
setne al
mov dword [esp + 0x2c], eax
jmp 0x100189ee
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x100189ee
push 0x1d62
push 0x19d1
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov dword [esp + 0x18], ebx
jmp 0x10018a04
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x4c], 0xe164caf
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x100189f4
mov dword [esp + 0x18], ebx
jmp 0x10018a23
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x168], 0xe790e864
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10018a10
mov eax, dword [esp + 0x28]
push 0xfffffffffffffffe
pop ecx
cmp ecx, eax
mov eax, dword [esp + 0x28]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
setg dl
add edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0x9d29be1d
mov dword [esp + 0x10], ebx
jmp 0x10018a6b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x200], 0x648261f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10018a58
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x10018a84
push ebx
call dword [sym.imp.GDI32.dll_GetObjectType]
mov dword [esp + 0x14], ebx
jmp 0x10018a9d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x200], 0x5b0e446d
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10018a8a
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], ebx
jg 0x10019112
push dword [esp + 0x4c]
movdqa xmm0, xmmword [0x10007d40]
lea eax, [esp + 0x1b8]
push eax
mov dword [esp + 0xbc], 0xffff
lea eax, [esp + 0x1ac]
mov dword [esp + 0x1c], esi
lea ecx, [esp + 0x100]
push eax
mov dword [esp + 0x1c], 0x5fa2ef70
mov dword [esp + 0x1c], 0x61a6b719
mov dword [esp + 0x1c], 0xd0811fc8
push ebx
movdqu xmmword [esp + 0x1b4], xmm0
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
call fcn.100172d4
push esi
lea ecx, [esp + 0x174]
mov dword [esp + 0x238], esi
call fcn.10015dbf
mov byte [esp + 0x234], 2
mov dword [esp + 0x2c], 0xdc09
mov dword [esp + 0x10], ebx
jmp 0x10018b60
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x170]
mov dword [eax + ecx*4], 0x2384b6d7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018b4a
mov dword [esp + 0x14], ebx
jmp 0x10018c74
push dword [esp + 0x4c]
movdqa xmm0, xmmword [0x10007d60]
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x1cc]
mov dword [esp + 0x94], ebx
push eax
push ebx
lea ecx, [esp + 0x9c]
mov dword [esp + 0xa0], ebx
movdqu xmmword [esp + 0x1d4], xmm0
mov dword [esp + 0xa4], ebx
call fcn.100172d4
mov dword [esp + 0x18], 0xfffffffb
mov dword [esp + 0x10], ebx
jmp 0x10018bd4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x5c], 0x57ad
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10018bc4
mov eax, dword [esp + 0x8c]
mov dword [eax], esi
mov dword [esp + 0x1c], 0xa9576c3a
mov dword [esp + 0x1c], ebx
jmp 0x10018c53
mov dword [esp + 0x10], 0xbf889e02
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + eax*4 + 0x5c]
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
mov eax, dword [esp + eax*4 + 0x5c]
add ecx, 0x8f01
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setg dl
sub edx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
cmp dword [esp + eax*4 + 0x5c], ebx
jne 0x10018c59
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jle 0x10018bf2
mov eax, dword [esp + 0x8c]
dec dword [eax]
jns 0x10018be4
lea ecx, [esp + 0x8c]
call fcn.100165dc
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe6
je 0x10018b6f
inc dword [esp + 0x2c]
lea ecx, [esp + 0x170]
call fcn.100165dc
or dword [esp + 0x234], 0xffffffff
lea ecx, [esp + 0xf8]
call fcn.100165dc
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x10018e0a
push dword [esp + 0x4c]
movdqa xmm0, xmmword [0x10007d70]
lea eax, [esp + 0x1f8]
push eax
lea eax, [esp + 0x1ec]
mov dword [esp + 0xd0], ebx
push eax
push ebx
lea ecx, [esp + 0xd8]
mov dword [esp + 0xdc], ebx
movdqu xmmword [esp + 0x1f4], xmm0
mov dword [esp + 0xe0], ebx
call fcn.100172d4
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xc8]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x10], 0xfffffffa
mov dword [esp + 0x10], 0x8129ec6e
mov dword [eax], 0xffffffe2
call fcn.100165dc
lea eax, [esp + 0xb4]
push eax
push 0x711b
push ebx
push 0x6a34
push 0xa68
call fcn.100228d5
mov dword [esp + 0x28], esi
add esp, 0x14
mov dword [esp + 0x10], 0x542afa01
mov dword [esp + 0x14], 0xffffffee
jmp 0x10018df1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], ebx
jmp 0x10018de2
push 2
lea ecx, [esp + 0x138]
call fcn.10015dbf
mov dword [esp + 0x10], ebx
jmp 0x10018d96
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x134]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10018d80
mov ecx, dword [esp + 0x134]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
setle dl
xor eax, eax
cmp edx, 0xffffffff
setle al
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x14]
sets dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x134]
call fcn.100165dc
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffef
jle 0x10018d6c
mov dword [esp + 0x10], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x16
je 0x10018d62
mov dword [esp + 0x10], esi
dec dword [esp + 0x18]
jns 0x10018cb1
push 2
lea ecx, [esp + 0x68]
call fcn.10015dbf
mov dword [esp + 0x18], ebx
jmp 0x10018e2e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x13dd33a4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10018e1b
mov dword [esp + 0x18], ebx
jmp 0x10018e4b
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x3c], 0xaabecba2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10018e3b
mov dword [esp + 0x40], ebx
jmp 0x10018f3a
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], 0xec46bc22
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
cmp dword [eax + ecx*4], ebx
je 0x10018eb8
mov eax, dword [esp + 0x40]
xor ecx, ecx
cmp eax, esi
setl cl
sub ecx, 0xb241
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
imul ecx, dword [eax + edx*4]
cmp ecx, dword [esp + 0x40]
jne 0x10018eb0
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov edi, esi
jmp 0x10018eba
mov edi, ebx
mov ecx, dword [esp + 0x40]
xor edx, edx
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
cmp dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x40]
sete dl
imul eax, edi
mov dword [esp + 0x10], edx
xor edx, edx
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x64]
setne cl
add ecx, dword [eax + esi*4]
jne 0x10018f00
cmp dword [esp + 0x40], ebx
jne 0x10018f00
mov esi, ebx
jmp 0x10018f05
xor eax, eax
lea esi, [eax + 1]
mov ecx, dword [esp + 0x40]
xor edx, edx
mov eax, dword [esp + 0x64]
cmp esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
setg dl
xor eax, eax
cmp edx, 0xbb5a
setle al
xor esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x40]
inc esi
cmp dword [esp + 0x40], esi
jle 0x10018e5b
lea ecx, [esp + 0x64]
call fcn.100165dc
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x100190fe
mov dword [esp + 0x24], 0x10b999fb
mov dword [esp + 0x10], 0x4abc2489
mov dword [esp + 0x10], 0xfffffffd
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], 0x294b
mov dword [esp + 0x10], 8
mov dword [esp + 0x10], ebx
jmp 0x10018fa0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d4], 0x32b7b88c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10018f8d
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jne 0x10018fe5
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
je 0x10018fd3
mov eax, esi
cmp dword [esp + 0x24], ebx
jne 0x10018fd5
mov eax, ebx
mov dword [esp + 0x2c], eax
mov ecx, ebx
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x24]
jg 0x10018fe7
mov ecx, esi
mov eax, dword [esp + 0x24]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
add ecx, dword [esp + 0x1e0]
mov dword [esp + 0x1d4], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
setne dl
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], 0xfffffff9
mov dword [esp + 0x10], ebx
jmp 0x1001904c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x34], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10019040
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x10019065
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCommState]
mov dword [esp + 0x1c], ebx
jmp 0x100190e1
cmp dword [esp + 0x1c], ebx
jle 0x1001906b
inc dword [esp + 0x28]
cmp dword [esp + 0x28], ebx
jle 0x10018ab2
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x14], 0xffffffff
lea ecx, [esp + 0xe0]
push 3
call fcn.10015dbf
push 3
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x10019140
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xd4], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10019131
mov dword [esp + 0x18], ebx
jmp 0x1001915e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xe0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1001914c
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0xdc]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe0]
mov dword [eax], ecx
cmp ecx, dword [esp + 0xd8]
jne 0x100191ac
mov eax, dword [esp + 0xdc]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0xe0]
setg cl
mov dword [eax + 4], ecx
jmp 0x100191ee
mov dword [esp + 0x10], 0x652d0da0
mov dword [esp + 0x14], 8
jmp 0x100191c8
cmp dword [esp + 0x10], ebx
jne 0x100191cf
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffa
jne 0x100191be
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x100191ee
push ebx
push 0x8f5
push 0x1741
call edi
push eax
call dword [sym.imp.USER32.dll_SetScrollPos]
lea ecx, [esp + 0xe0]
call fcn.100165dc
mov dword [esp + 0x10], 0x75c9
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], 0x373ee763
mov dword [esp + 0x18], ebx
jmp 0x10019223
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x15c], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10019214
mov dword [esp + 0x18], ebx
jmp 0x10019242
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x21c], 0x31d2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001922f
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
je 0x1001925b
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0xc4]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x50]
dec dword [esp + 0x10]
mov edi, edx
mov esi, eax
call fcn.10017a7f
mov ecx, dword [esp + 0x22c]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret