Function at 0x100412de
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
push 8
pop eax
mov dword [ebp - 0x40], eax
xor ebx, ebx
mov dword [ebp - 0x3c], eax
mov esi, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], 0xfff9
mov dword [ebp - 8], 0xebe1552b
mov dword [ebp - 8], ebx
jmp 0x1004131b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x24], 0x35c52658
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1004130d
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
mov eax, dword [ebp - 0x40]
setl dl
xor ecx, ecx
xor edi, edi
add edx, 7
inc edi
cmp edx, edi
setg cl
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0x3c]
cmp ecx, 0xd0b6
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 0xffffffff
jle 0x10041360
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x3c]
test eax, eax
jne 0x10041374
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ebx
je 0x10041386
mov ecx, edi
cmp dword [ebp - 0x18], ebx
jne 0x10041388
mov ecx, ebx
xor eax, eax
test ecx, ecx
setne al
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10041416
mov dword [ebp - 0x14], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x10], 0x69002fc
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x10]
dec eax
cmp eax, 0x1817887b
mov eax, dword [ebp - 0x14]
push ebx
setle cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setg cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
sete dl
sub edx, eax
sub edx, 0xfffe
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.1004499b
add esp, 0xc
jmp 0x1004142c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x1004142c
push 0x845
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
cmp dword [esi], ebx
je 0x10041597
push dword [esi]
push ebx
push dword [esi + 4]
call fcn.10025bc3
add esp, 0xc
mov dword [ebp - 0x1c], 0xfffffff9
mov dword [ebp - 8], ebx
push 4
pop ecx
jmp 0x1004145b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x50], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10041451
mov dword [ebp - 8], ebx
jmp 0x10041473
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xc], 0x252cb136
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10041465
mov dword [ebp - 8], ebx
jmp 0x1004148b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x60], 0x1c77dcd
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1004147d
mov dword [ebp - 0xc], ebx
jmp 0x1004153f
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x18], 0x8c84b7b8
mov eax, dword [ebp - 0xc]
cmp dword [ebp + eax*4 - 0x50], ebx
je 0x100414b4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x50]
cmp ecx, eax
mov eax, 0x89bdd777
setle dl
cmp eax, edx
mov eax, dword [ebp - 0xc]
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [ebp + eax*4 - 0x50]
sub edx, eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x50]
cmp eax, edx
setle cl
xor eax, eax
cmp ecx, 0x928d9ba5
setne al
xor ecx, ecx
cmp eax, 0x5261
mov eax, dword [ebp - 0xc]
setl cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x50]
cmp ecx, eax
setg dl
xor eax, eax
neg edx
cmp edx, 0xfffffff9
mov dword [ebp - 0x5c], edx
setge al
cmp eax, 8
sbb eax, eax
neg eax
imul eax, eax, 0xfffffffd
mov dword [ebp - 0x18], eax
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x1004153c
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jle 0x10041498
push esi
push ebx
call fcn.1004465d
pop ecx
mov dword [ebp - 8], 0x897a4a12
pop ecx
mov dword [ebp - 8], ebx
jmp 0x10041568
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x30], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x1004155e
mov dword [ebp - 8], ebx
jmp 0x1004158c
push ebx
call fcn.100443ab
mov byte [ebp - 1], bl
pop ecx
cmp byte [ebp - 1], bl
je 0x10041589
push ebx
call dword [sym.imp.USER32.dll_CreateIconIndirect]
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jle 0x10041573
mov dword [esi + 4], ebx
mov dword [esi], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret