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

Disassembly:
mov eax, dword [esp + 8]
cmp eax, 0
je 0x4017dc
add eax, 4
call fcn.004010b0
xor ebx, dword [0x4051aa]
push 0x81
call fcn.00401000
add esp, 4
xor ebx, ebx
mov edx, edi
sub edx, edi
mov ecx, esp
xor edx, edi
sub edx, ecx
mov dword [0x405004], ecx
add ebx, 1
cmp ebx, 0x708
jb 0x4017f6
mov edx, ecx
mov ecx, ebp
pmaxub mm0, mm0
push 0
push 0
call sub.kernel32.dll_WaitForSingleObject
call sub.kernel32.dll_GetLastError
cmp eax, 6
jne 0x401bb4
push 0x2b
push 0x85
call fcn.00401170
add esp, 8
mov esi, edx
xor edi, edi
mov esi, dword [0x4051ae]
mov eax, esi
test eax, eax
js 0x401870
add dword [0x405084], ebx
mov eax, dword [0x4051b2]
add ecx, eax
sub esi, esp
add edx, esp
jmp 0x401888
xor esi, edi
add edx, edi
mov edx, dword [0x4051b6]
xor eax, ebp
xor ebx, dword [0x405094]
xor ecx, dword [0x4051ba]
mov eax, edi
mov esi, edi
test ecx, ecx
jge 0x4018ac
add eax, edx
sub dword [0x405094], eax
push 0x4051be
call sub.kernel32.dll_GetLocalTime
mov dword [0x405004], edx
add edi, 1
cmp edi, 0x7d5
jb 0x401849
push 0
push 0
push 0x15
push 0xf0
call sub.kernel32.dll_GetLocaleInfoA
push 0xcf
call fcn.004012b0
add esp, 4
push 0x4051d4
call sub.kernel32.dll_GetSystemTime
call fcn.00401520
mov dword [0x4051ea], esi
push 0x25
call fcn.00401000
add esp, 4
test esi, esi
jl 0x40195c
push 0xb3
call fcn.00401000
add esp, 4
mov eax, dword [0x4051ee]
mov dword [0x405058], edi
xor ecx, dword [0x4051f2]
xor ecx, ecx
mov esi, edx
mov edi, ebx
mov dword [0x40510a], edi
mov eax, ecx
add edi, edx
mov esi, dword [0x405026]
add ecx, 1
cmp ecx, 0x1c9f
jb 0x401926
push 0x32
push 0x4051f6
push 0x72
push 0
call sub.user32.dll_LoadStringA
test edi, edi
jb 0x401b18
mov esi, esp
cmp esi, 0xfc
je 0x4019bf
cmp esi, 0x83
je 0x401a05
cmp esi, 0xbd
je 0x401a32
add dword [0x405228], esi
mov esi, ebp
add edx, eax
push 0x63
push 0x7f
call fcn.00401480
add esp, 8
push 0x83
push 0xb4
call fcn.00401170
add esp, 8
mov eax, edi
jmp 0x401ab9
xor eax, eax
mov dword [0x40522c], edx
xor edi, esp
mov dword [0x405026], esi
mov edi, dword [0x405008]
mov edx, eax
add eax, 1
cmp eax, 0x9ad
jb 0x4019c1
mov dword [0x405230], ecx
push 0x47
call sub.user32.dll_GetSystemMetrics
mov edx, ecx
xor dword [0x405058], ebx
mov ecx, ebp
jmp 0x401ab9
add dword [0x405234], esi
push 0xf6
push 0x9d
call fcn.00401170
add esp, 8
xor dword [0x405008], eax
add ecx, ebx
mov dword [section..data], ecx
mov edi, ecx
jmp 0x401ab9
test edi, edi
jp 0x401a91
xor eax, ebx
xor edi, dword [0x405238]
test edi, edi
jp 0x401a67
mov dword [0x40523c], ecx
mov ebx, dword [0x405140]
add eax, ecx
mov edx, dword [section..data]
add edi, ecx
mov eax, edi
jmp 0x401a7f
sub edi, dword [0x405240]
add edi, edx
mov esi, ebx
mov edi, ecx
mov dword [0x405244], edi
sub eax, dword [0x405084]
xor eax, dword [0x405248]
push 0x40524c
call sub.kernel32.dll_GetSystemTime
mov edi, edx
mov edx, eax
xor dword [0x405262], eax
push 0x4f
call fcn.004014e0
add esp, 4
mov ebx, dword [0x405266]
push 0x77
call fcn.004014e0
add esp, 4
mov edx, ebp
test eax, eax
jno 0x401afb
push 0x54
push 9
call fcn.00401480
add esp, 8
add ecx, edi
push 0xae
call fcn.00401000
add esp, 4
mov dword [0x405008], edx
sub ecx, dword [0x40526a]
sub dword [0x405008], edx
jmp 0x401b0f
xor dword [0x40526e], ebx
mov ebx, ebp
mov edx, edi
mov eax, esi
xor eax, dword [0x405272]
mov ebx, edi
add ebx, eax
mov esi, eax
jmp 0x401ba8
push 0x84
call fcn.004014e0
add esp, 4
mov edi, dword [0x4051d4]
sub edi, dword [0x405080]
test esi, esi
je 0x401b72
xor edi, dword [0x405140]
xor esi, edi
xor ecx, edi
push 0x1b
push 0x85
call fcn.00401480
add esp, 8
push 0x7b
push 7
call fcn.00401170
add esp, 8
mov eax, dword [0x4050f0]
jmp 0x401b9d
add edx, esp
call fcn.004010b0
push 0xcc
push 0xd7
call fcn.00401060
add esp, 8
mov dword [0x405276], edi
mov ebx, dword [0x4050f0]
mov dword [0x40527a], ecx
call fcn.004010b0
add eax, dword [0x405070]
mov edx, dword [section..data]
add dword [0x405228], eax
push 0
call sub.msvcrt.dll__exit
int3