Function at 0x10003ae9
Capabilities:
Encode data using xor
Get geographical location

Disassembly:
mov eax, 0x1005a314
call fcn.10059bf8
sub esp, 0x70
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x34], edx
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], ecx
cmp byte [ebp + 0x24], bl
je 0x10003cff
mov dword [ebp - 0x1c], 0x6c29
cmp dword [ebp - 0x1c], 0x6f0d
jle 0x10003b57
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x10073e38
or eax, esi
cdq
push edx
push eax
call fcn.10001ae9
inc ebx
cmp ebx, 0x67d7
jl 0x10003b24
inc edi
push 0
pop ebx
cmp edi, 0x1331
jl 0x10003b21
inc esi
cmp esi, 0x3b3e
jl 0x10003b1f
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x69e5
jge 0x10003b72
mov edx, str.upna_fmbtb_wkt_ztrvrlms_jjkrfmaq_zdh_frgjqd_thwtyko_yuokk
mov ecx, 0x10073e38
call fcn.100034b8
or dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0x2c]
mov dword [edi], ebx
cmp dword [edi], 0x2e
je 0x10003e97
mov dword [ebp - 0x24], 0x5c8b
cmp dword [ebp - 0x24], 0x5dd2
jle 0x10003c20
push 0x24aa
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolygon]
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, esi
mov dword [ebp - 0x28], edi
mov esi, edi
mov dword [ebp - 0x2c], ebx
shl esi, cl
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0x60]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a21
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003be4
mov eax, dword [eax]
push eax
call fcn.10041a06
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x60]
call fcn.10001e51
inc edi
cmp edi, 0x1a04
jl 0x10003bcb
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x7b0b
jl 0x10003bbd
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x2955
jl 0x10003bb8
mov edi, dword [ebp + 0x2c]
mov dword [ebp - 0x20], 0xffffffff
cmp dword [ebp - 0x24], 0x5c7c
jge 0x10003c3b
push str.udvcyl_wcdtpdc_uybwypwt_aowf
call fcn.10041a06
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], 0x694a98a1
mov dword [ebp - 0x1c], ebx
jmp 0x10003c85
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x3c], 0x669d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10003c77
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov edx, dword [ebp + 0xc]
test eax, eax
mov esi, dword [ebp - 0x30]
setns cl
sub ecx, 0x57feb941
mov dword [edx], ecx
mov eax, dword [edx]
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov eax, dword [edx]
imul eax, dword [ebp - 0x24]
mov dword [esi], eax
cmp dword [ebp - 0x38], ebx
jne 0x10003cbe
mov eax, dword [ecx]
mov eax, dword [ebp + 8]
xor edx, edx
mov eax, dword [eax]
mov eax, dword [ebp + 0x34]
mov eax, dword [eax]
cmp eax, 0x634c5d19
mov eax, dword [ebp - 0x20]
setge dl
xor ecx, ecx
cmp eax, 1
setle cl
cmp edx, ecx
jle 0x10003ce4
mov eax, dword [ebp - 0x24]
mov eax, dword [esi]
mov eax, dword [esi]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
inc dword [edi]
jmp 0x10003b7b
mov dword [ebp - 0x24], 0x4383
cmp dword [ebp - 0x24], 0x4451
jle 0x10003d5b
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov eax, edi
mov ecx, 0x10073e38
cdq
idiv ebx
xor edx, esi
mov eax, edx
cdq
push edx
push eax
call fcn.10001ae9
inc ebx
cmp ebx, 0x1023
jl 0x10003d16
inc edi
push 0
pop ebx
cmp edi, 0x5417
jl 0x10003d13
inc esi
cmp esi, 0xe5a
jl 0x10003d11
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x4198
jge 0x10003d7a
mov edx, str.migob_guv_ydph_avxefeg_enqnfsldo_cbj_oui_rhl_nwwugs_ozaknpqz_mshihuoy_wkxpgvh_onzersbh_dcmqqvyr
mov ecx, 0x10073e38
call fcn.100034b8
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x28]
mov dword [eax], ebx
cmp dword [eax], 0x1d
jl 0x10003e97
mov dword [ebp - 0x1c], ebx
jmp 0x10003dc4
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0x1da6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10003db6
mov dword [esi], ebx
cmp dword [esi], 2
jg 0x10003e8d
mov dword [ebp - 0x1c], 0x6a43
cmp dword [ebp - 0x1c], 0x6d86
jle 0x10003e57
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov eax, edi
cdq
idiv esi
mov esi, 0x136d
mov edi, edx
mov eax, edi
lea ecx, [ebp - 0x78]
cdq
push edx
push eax
call fcn.10001a21
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003e12
mov eax, dword [eax]
push eax
call fcn.10041a06
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.10001e51
dec edi
dec esi
jne 0x10003dfb
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x4452
jl 0x10003def
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x202b
jl 0x10003dea
push 0x2192
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov esi, dword [ebp + 0x28]
mov byte [ebp - 0x15], bl
cmp dword [ebp - 0x1c], 0x6804
jge 0x10003e6e
push str.eduutds_jja_qxwudjqht
call fcn.10041a06
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x15], 0
je 0x10003e86
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MapDialogRect]
inc dword [esi]
jmp 0x10003dcc
mov eax, dword [ebp + 0x14]
inc dword [eax]
jmp 0x10003d86
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret