Function at 0x47d966
Capabilities:
Access peb ldr_data
Get geographical location
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x59bb63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
mov eax, dword [0x61b884]
push ebx
push esi
mov ebx, ecx
mov esi, 0x61b884
push edi
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
xor edi, edi
mov dword [esp + 0xe4], edi
mov eax, dword [0x61b884]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
or dword [esp + 0x34], 0xffffffff
or dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], vtable.cf::BkJson::Document.0
mov dword [esp + 0x2c], vtable.cf::BkJson::Error.0
mov dword [esp + 0x30], edi
mov byte [esp + 0xe4], 2
mov eax, dword [0x61f630]
mov eax, dword [eax - 0xc]
cmp eax, edi
jne 0x47da2a
lea eax, [esp + 0x10]
push eax
call fcn.0045ad45
test eax, eax
pop ecx
je 0x47dac6
mov eax, dword [esp + 0x10]
cmp dword [eax - 0xc], edi
je 0x47da2a
lea eax, [esp + 0x10]
mov edi, 0x61f630
call fcn.004013bf
xor edi, edi
mov eax, dword [0x61f630]
cmp dword [eax - 0xc], edi
je 0x47dac6
push eax
lea esi, [esp + 0x24]
call fcn.00494f8d
push str.cityid
lea eax, [esp + 0x40]
push eax
call fcn.004951cb
mov byte [esp + 0xe4], 3
call fcn.00493eeb
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00432627
push 0x5f07c8
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0xec], 2
call fcn.004951cb
mov eax, dword [ebx + 0xc]
cmp dword [eax - 0xc], edi
je 0x47dac6
push dword [esp + 0x14]
push eax
call fcn.0049eca4
test eax, eax
pop ecx
pop ecx
jne 0x47dac6
mov eax, dword [ebx + 8]
cmp eax, edi
jle 0x47dac2
cmp eax, 0x64
jge 0x47dac6
push edi
call fcn.0049f3a8
pop ecx
push eax
call fcn.004a0a64
pop ecx
call fcn.004a0a71
push 0x65
cdq
pop ecx
idiv ecx
cmp edx, dword [ebx + 8]
jl 0x47dac6
mov dword [esp + 0x18], edi
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 0xc]
push esi
push eax
call fcn.0049eca4
test eax, eax
pop ecx
pop ecx
jne 0x47dbc5
mov ebx, dword [ebx + 0xc]
cmp dword [ebx - 0xc], edi
je 0x47dbc5
cmp dword [esi - 0xc], edi
je 0x47dbc5
push ebx
call fcn.0049d0c1
pop ecx
lea edi, [esp + 0x48]
mov ebx, eax
call fcn.00433d69
mov byte [esp + 0xe4], 4
push dword [0x61f5b0]
mov esi, 0x5e8a08
push esi
lea eax, [esp + 0xa0]
call fcn.004325c8
push dword [0x61f5b4]
lea eax, [esp + 0xa8]
push esi
call fcn.004325c8
add esp, 0x10
push dword [0x61f5d8]
lea eax, [esp + 0xa8]
push eax
call fcn.00432627
push dword [0x61f5dc]
lea eax, [esp + 0xb0]
push eax
call fcn.00432627
call fcn.004836bc
mov dword [esp + 0x60], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00485e05
pop ecx
mov byte [esp + 0xe4], 5
push dword [eax]
lea eax, [esp + 0xac]
push eax
call fcn.00432627
mov byte [esp + 0xe4], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.004011c0
push dword [0x61f630]
mov ecx, edi
push dword [esp + 0x1c]
mov dword [esp + 0x70], 3
push ebx
push 4
push 0x1e
call fcn.004340e6
mov ecx, edi
call fcn.00433e4a
lea ecx, [esp + 0x20]
mov byte [esp + 0xe4], 1
call fcn.00494f4a
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004011c0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.004011c0
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0x18]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret