Function at 0x10015329
Capabilities:
Get geographical location
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
mov ebx, edx
mov dword [ebp - 0x84], ecx
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x28], 0x21ded680
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x20], 0xe0710dd0
push esi
push edi
mov dword [ebp - 0xc], 0x7904
xor edi, edi
mov dword [ebp - 8], 0x5cc7c44d
inc edi
mov dword [ebp - 0x1c], 4
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], edx
jmp 0x1001538c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2c], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1001537e
mov dword [ebp - 0x10], edx
jmp 0x100153a7
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xf4], 0x32d7af2c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10015396
mov dword [ebp - 0x10], edx
jmp 0x100153bc
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x80], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100153b2
mov ecx, dword [ebp - 0xc]
mov esi, edi
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0xc]
cmp ecx, eax
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 8]
cmovge esi, edx
add ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setle dl
add edx, esi
sub edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 8]
jne 0x100153f9
cmp dword [ebp - 0x14], 0
je 0x100153f9
mov edx, edi
jmp 0x100153fb
xor edx, edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
push 0xfffffffffffffffe
setge cl
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0
pop esi
jl 0x100154e9
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x14], 5
cmp dword [ebp - 0x7c], 0
je 0x1001545f
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
cmp eax, 9
mov eax, dword [ebp - 0x7c]
setne cl
sub eax, ecx
je 0x1001545f
mov edx, edi
jmp 0x10015461
xor edx, edx
mov eax, dword [ebp - 8]
cmp esi, edx
mov ecx, dword [ebp + eax*4 - 0x2c]
sbb eax, eax
inc eax
xor edx, edx
cmp eax, ecx
setle dl
xor ecx, ecx
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x2c]
cmp eax, edx
mov eax, dword [ebp - 8]
setl cl
mov dword [ebp + eax*4 - 0x2c], ecx
cmp dword [ebp - 0xc], 0
jne 0x1001549e
mov eax, dword [ebp - 0x14]
neg eax
cmp eax, 0x538e5efb
jg 0x100154a5
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x2c]
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
mov dword [ebp - 0x18], ecx
dec dword [ebp - 8]
jns 0x1001541f
mov dword [ebp - 0x10], edi
xor edx, edx
mov dword [ebp - 0x14], 0x83648bd9
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov edi, dword [sym.imp.USER32.dll_GetDC]
setne dl
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor eax, eax
cmp edx, 0xffffffff
setge al
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
sub edx, eax
imul edx, dword [ebp - 0x10]
imul edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x5dea
setge al
add eax, dword [ebp - 0x10]
neg eax
je 0x100155e6
xor edx, edx
mov dword [ebp - 0x20], 0xe0d6
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xc], edx
jmp 0x10015584
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x118], 0x662b0a94
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x10015573
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edx
jne 0x1001559e
cmp dword [ebp - 0x10], edx
jne 0x1001559e
mov eax, edx
jmp 0x100155a1
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x20]
add ecx, eax
xor eax, eax
neg ecx
cmp ecx, 0xffffffff
mov dword [ebp - 0x118], ecx
push 4
setne al
pop ecx
sub ecx, eax
mov eax, 0xbf085fff
add ecx, dword [ebp - 0x10]
cmp eax, ecx
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0xfd0a
setne cl
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
add eax, 0xc1cc
mov dword [ebp - 0x20], eax
jmp 0x10015609
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x10015609
push edx
push 0x1d69
push 0x200f
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
xor edx, edx
mov dword [ebp - 0x18], edx
xor ecx, ecx
mov dword [ebp - 0x10], 0xffffffff
inc ecx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0xffffffe8
jl 0x1001564c
mov dword [ebp - 0xc], 7
mov dword [ebp - 0xc], edx
jmp 0x10015642
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001563f
call dword [sym.imp.USER32.dll_CreateMenu]
xor ecx, ecx
xor edx, edx
inc ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jne 0x1001562b
dec dword [ebp - 0x10]
jmp 0x10015619
cmp dword [ebp - 0x10], edx
jne 0x10015664
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, edx
jmp 0x10015666
mov eax, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xc], 0xffffffea
jmp 0x10015a2f
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], 6
mov dword [ebp - 0x18], edx
jmp 0x1001569f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x44], 0x9e57ad95
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10015691
inc dword [ebp - 8]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], ecx
jg 0x10015804
mov dword [ebp - 0x14], 0x4438bea1
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x18], edx
jmp 0x100156d5
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x100156c7
mov dword [ebp - 0x14], edx
jmp 0x1001576b
mov dword [ebp - 0x10], 0x41b66baf
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], edx
jl 0x10015718
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015707
push edx
push edx
call esi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x44], edx
jne 0x10015715
dec dword [ebp - 0x10]
jns 0x100156f1
xor ecx, ecx
inc ecx
mov dword [ebp - 0x10], edx
jmp 0x10015763
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0x44]
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x44], ecx
jne 0x10015758
mov eax, dword [ebp - 8]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x44]
add eax, dword [ebp - 0x40]
imul ecx, eax, 0xfffd
mov eax, dword [ebp - 0x40]
cmp eax, ecx
setle dl
mov dword [ebp - 0x18], edx
xor edx, edx
cmp dword [ebp - 0x18], edx
jne 0x10015758
xor ecx, ecx
mov eax, edx
inc ecx
jmp 0x1001575d
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jle 0x1001571d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x100156e2
cmp dword [ebp - 0x3c], edx
jne 0x100157e3
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x1c], edx
jne 0x10015786
mov eax, dword [ebp - 8]
jmp 0x1001578d
cmp dword [ebp - 0x14], edx
je 0x1001578d
mov edx, ecx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x44]
jl 0x100157a6
cmp dword [ebp - 0x44], 0
jne 0x100157a6
xor ecx, ecx
jmp 0x100157a9
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x40]
xor edx, edx
sub ecx, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setl dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x3c]
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0xfffffffb
setle al
cmp eax, 0xd9de360a
je 0x100157e0
xor edx, edx
jmp 0x100157e5
xor ecx, ecx
inc ecx
mov edx, ecx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
push 0
setl cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
inc dword [ebp - 8]
inc ecx
pop edx
cmp dword [ebp - 8], ecx
jle 0x100156b4
mov dword [ebp - 0x18], edx
jmp 0x1001581a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc8], 0x405b4019
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10015809
mov dword [ebp - 0x18], edx
jmp 0x10015a23
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x24], 0xcbbbc25
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], 0x8607
mov dword [ebp - 0x20], 0xf4846e1d
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0xffffffea
jne 0x100159bc
mov dword [ebp - 8], edx
mov dword [ebp - 0x4c], 0x6e85fcb
mov dword [ebp - 8], edx
jmp 0x10015896
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001587a
push edx
push 0x250d
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015893
push 0x251
push edx
push edx
push edx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 6
jge 0x10015863
mov dword [ebp - 8], 9
jmp 0x1001599f
mov dword [ebp - 0x10], 0x272a727
mov dword [ebp - 0x38], 4
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0x70fc
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100158d2
push edx
call dword [sym.imp.USER32.dll_SetCursor]
xor edx, edx
mov dword [ebp - 0x10], 0xffffffeb
jmp 0x1001598f
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], 0x2305aba9
cmp dword [ebp - 0x38], 0x1ec2
jne 0x1001595a
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x38]
neg eax
sub edx, eax
mov eax, dword [ebp - 0x4c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
imul ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x24], eax
jge 0x1001592f
cmp dword [ebp - 0x1c], 0
jne 0x1001592f
xor eax, eax
jmp 0x10015932
xor eax, eax
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x10015946
cmp dword [ebp - 0x28], 0
je 0x10015946
xor edx, edx
inc edx
jmp 0x10015948
xor edx, edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 8]
jl 0x1001595a
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
xor ecx, ecx
test eax, eax
push 0
sets cl
xor edx, edx
cmp ecx, 0xfffffff6
setle dl
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
pop edx
setle cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffffb
jge 0x100158de
dec dword [ebp - 8]
push 0
pop edx
cmp dword [ebp - 8], 4
jle 0x100158a8
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffea
push 0
pop edx
je 0x10015854
xor ecx, ecx
inc ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x14], edx
jmp 0x10015a1a
mov dword [ebp - 0x28], 0x37bc7528
mov dword [ebp - 0x20], 0x5f4b
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], edx
jmp 0x100159eb
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x124], 3
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x100159da
dec dword [ebp - 0x20]
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015a09
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor ecx, ecx
xor edx, edx
inc ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], 0x2e6e7f73
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100159c4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jne 0x10015828
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x17
je 0x10015682
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edx
jmp 0x10015a52
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x100], 0x2eac4530
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10015a41
mov dword [ebp - 8], edx
jmp 0x10015a6a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x10c], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10015a5d
cmp dword [ebp - 0xc], edx
je 0x10015a7f
mov eax, ecx
cmp dword [ebp - 0xf8], edx
jne 0x10015a81
mov eax, edx
mov dword [ebp - 0x108], eax
mov dword [ebp - 0xc], edx
jmp 0x10015a9e
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], 0xfffffff6
dec dword [ebp - 0x20]
jne 0x10015aa4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jle 0x10015a8c
mov dword [ebp - 0x14], 0x48261f9c
mov dword [ebp - 0x14], 0xfffffffa
jmp 0x10015b8a
mov dword [ebp - 0x1c], 0xe1c97412
mov dword [ebp - 8], edx
jmp 0x10015ad1
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x6c], 0x446df37d
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10015ac3
mov dword [ebp - 8], edx
jmp 0x10015aea
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x78], 0xd4f2887c
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10015adc
mov dword [ebp - 0x74], edx
jmp 0x10015b04
mov dword [ebp - 0x28], 8
cmp dword [ebp - 0x28], edx
jne 0x10015b09
inc dword [ebp - 0x74]
cmp dword [ebp - 0x74], ecx
jle 0x10015af5
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], edx
jl 0x10015b87
mov dword [ebp - 0xc], edx
jmp 0x10015b28
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x64], 3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x10015b1a
mov dword [ebp - 0x64], edx
jmp 0x10015b77
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x18], edx
jmp 0x10015b6f
mov dword [ebp - 0xc], 0x5b1b6fd4
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x64]
mov dword [ebp + eax*4 - 0x6c], ecx
mov dword [ebp - 0xc], edx
jmp 0x10015b63
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x6c], 0xdca27289
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10015b55
inc dword [ebp - 0x18]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x18], ecx
jle 0x10015b3b
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], ecx
jle 0x10015b33
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x60], eax
dec dword [ebp - 0x1c]
jns 0x10015b15
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffec
jne 0x10015ab7
mov dword [ebp - 0x28], 0x862f
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015bb2
push edx
push 0x10e6
call dword [sym.imp.GDI32.dll_CreateHatchBrush]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015bca
push edx
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x14], 0xffffffff
inc ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edx
jmp 0x10015bea
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x30], 7
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jl 0x10015bdc
mov dword [ebp - 0x14], edx
jmp 0x10015c0b
mov dword [ebp - 0x20], 0xffffffff
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x30]
mov dword [ebp - 8], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jle 0x10015bf4
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x30]
test eax, eax
mov eax, dword [ebp - 0x30]
setns cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setne dl
xor ecx, ecx
cmp eax, edx
setge cl
xor edx, edx
cmp ecx, dword [ebp - 0x30]
mov byte [ebp - 1], dl
je 0x10015c64
cmp byte [ebp - 1], dl
je 0x10015ca5
push 0x1fe5
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_SetLayout]
xor edx, edx
jmp 0x10015ca5
cmp byte [ebp - 1], dl
je 0x10015c79
push edx
push 1
push 0x674
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x10015ca0
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015c96
push edx
call esi
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
xor edx, edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x30]
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jle 0x10015c7e
mov dword [ebp - 0xc], 0x7e2799ac
mov dword [ebp - 0xc], edx
jmp 0x10015ce2
mov dword [ebp - 0x28], 0xfd4914d2
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015cdc
push 0x10c9
push edx
push edx
push 0x1423
push edx
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
xor edx, edx
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xe
jle 0x10015cb1
mov dword [ebp - 0x28], 0x796a0b59
mov dword [ebp - 0x1c], 0x22ba3946
mov dword [ebp - 0xc], edx
jmp 0x10015d0c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x134], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x10015cfb
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], edx
jl 0x10015d4d
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015d32
call esi
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015d48
push edx
push 1
push edx
push edx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
xor edx, edx
dec dword [ebp - 0x1c]
jns 0x10015d1e
mov dword [ebp - 8], edx
jmp 0x10015d60
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x58], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10015d52
mov dword [ebp - 8], edx
jmp 0x10015d7c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xc0], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10015d6b
mov dword [ebp - 0x58], 0xffffffe6
jmp 0x10015f26
mov dword [ebp - 8], 0xfffffff8
mov dword [ebp - 8], 8
cmp dword [ebp - 8], 6
jne 0x10015e16
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 0xc], edx
jmp 0x10015dbf
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xac], 0x1220985a
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10015dae
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setg cl
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0x14], 2
jmp 0x10015e04
cmp dword [ebp - 0x14], 0
jne 0x10015e0a
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x10015e01
push 0
call dword [sym.imp.USER32.dll_SetKeyboardState]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x2c
jl 0x10015de9
dec dword [ebp - 8]
cmp dword [ebp - 8], 6
push 0
pop edx
je 0x10015da2
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015e3a
push 0x1669
push edx
push 0x1f53
push 0x7d
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_ExtFloodFill]
xor edx, edx
mov dword [ebp - 0x1c], 8
mov dword [ebp - 8], 0xfffffff8
mov dword [ebp - 0x10], 0x63785551
mov dword [ebp - 0xc], 0x5d1cb6a7
mov eax, dword [ebp - 8]
sub eax, 6
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 8], 0x2f3c
mov ecx, dword [ebp - 8]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 8]
cmp ecx, 0xd5493e6
je 0x10015ea5
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015eb1
call esi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x10015eb1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0xc], 0
je 0x10015ec0
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x28], 2
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0x54]
cmp edx, eax
setne cl
xor edx, edx
imul eax, ecx, 0x8064
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x28], edx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xffffffe9
jne 0x10015d8e
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x10], 0xa906
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x28], edx
mov dword [ebp - 0xc], edx
jmp 0x10015f5b
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x48], 0xdfddae9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x10015f4d
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10015f73
push edx
call dword [sym.imp.USER32.dll_CreateIconIndirect]
xor edx, edx
cmp dword [ebp - 8], edx
je 0x10015f7b
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
je 0x1001608a
mov eax, 0xffbe6269
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x100160a1
push 9
pop esi
mov dword [ebp - 0x28], 0x20a048c8
mov dword [ebp - 0x4c], 0xb265d632
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x38], 0xaadaf8d9
mov dword [ebp - 8], edx
jmp 0x10016076
mov dword [ebp - 0x14], 0x7ea4c570
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edx
jl 0x10016073
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x48], edx
je 0x1001604d
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0x48], edx
je 0x10016012
cmp dword [ebp - 0x98], edx
je 0x10016012
xor edx, edx
inc edx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 8]
imul ecx, dword [ebp + eax*4 - 0x48]
xor eax, eax
cmp edx, ecx
setge al
sub eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x4c]
jle 0x10016039
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x24]
xor eax, eax
inc eax
jmp 0x1001604f
mov eax, edx
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x38]
setge dl
xor ecx, ecx
cmp edx, eax
push 0
setg cl
xor eax, eax
cmp ecx, esi
pop edx
setne al
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x14]
jns 0x10015ff5
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jle 0x10015fe6
dec dword [ebp - 0x10]
jns 0x10015fbf
jmp 0x100160a1
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100160a1
call esi
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_UpdateColors]
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
jmp 0x100160b6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb8], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x100160a9
push 2
mov dword [ebp - 8], edx
pop edi
jmp 0x1001619e
mov dword [ebp - 0xc], 7
mov dword [ebp - 0x20], 0x7f19
mov dword [ebp - 0x24], 0x1fa4c821
mov dword [ebp - 0x28], 0xfffffffa
mov dword [ebp - 0xc], edx
jmp 0x100160f5
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xe8], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x100160e8
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], edi
jg 0x1001619b
mov edx, dword [ebp - 0x20]
xor ecx, ecx
sub edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
cmp eax, edx
mov eax, dword [ebp - 8]
setl cl
xor edx, edx
imul ecx, ecx, 0xfffd
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
mov ecx, dword [ebp + eax*4 - 0xb8]
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb8], ecx
xor eax, eax
cmp edx, 0xec3
setge al
cmp eax, 0x97e7c14a
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0xe0], 0xe6966ef3
mov eax, dword [ebp - 8]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
sete dl
sub edx, 0x1188
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul eax, edx, 0xffff
mov dword [ebp - 0xe8], edx
cmp eax, edi
setne cl
mov dword [ebp - 0x28], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x10016107
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jle 0x100160c7
xor esi, esi
mov byte [ebp - 1], dl
inc esi
cmp byte [ebp - 1], 0
je 0x100161bc
push esi
call dword [sym.imp.USER32.dll_ShowCursor]
xor edx, edx
mov byte [ebp - 0x31], dl
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xc], edx
jmp 0x100161db
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xa4], 9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x100161ca
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edi
jg 0x10016273
mov dword [ebp - 8], edx
jmp 0x100161ff
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xd8], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x100161f2
mov dword [ebp - 8], edx
jmp 0x1001621b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x88], 0x6c218e99
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x1001620a
mov eax, dword [ebp - 0x14]
xor edx, edx
push 0
mov eax, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setne dl
xor ecx, ecx
cmp edx, eax
pop edx
setne cl
mov dword [ebp - 0x88], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x100161ed
push edx
lea eax, [ebp - 0x31]
push 0x61fd
push eax
call fcn.1001e723
mov dword [ebp - 0xc], 4
add esp, 0xc
mov dword [ebp - 0xc], 0x11
jmp 0x100162d1
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x28], 0x568d526d
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
cmp eax, 0xffffffff
jle 0x100162b2
mov eax, esi
jmp 0x100162b4
xor eax, eax
mov dword [ebp - 0x28], eax
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x100162ce
push 0x25b9
push 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffffb
jle 0x10016295
mov eax, ebx
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x84]
mov esi, edx
mov edi, eax
call fcn.100152b7
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret