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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x495154
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x88
mov eax, dword [0x4b9e00]
push ebx
push esi
push edi
mov edi, ecx
mov esi, 0x4b9e00
mov ecx, esi
mov dword [esp + 0x18], edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
xor ebx, ebx
mov dword [esp + 0x9c], ebx
mov eax, dword [0x4b9e00]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
or dword [esp + 0x34], 0xffffffff
or dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x14], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], vtable.BkJson::Document.0
mov dword [esp + 0x2c], vtable.BkJson::Error.0
mov dword [esp + 0x30], ebx
mov byte [esp + 0x9c], 2
mov eax, dword [0x4bb8e4]
mov eax, dword [eax - 0xc]
cmp eax, ebx
jne 0x438c11
lea eax, [esp + 0xc]
push eax
call fcn.004338c7
test eax, eax
pop ecx
je 0x438cc0
mov eax, dword [esp + 0xc]
cmp dword [eax - 0xc], ebx
je 0x438c11
lea eax, [esp + 0xc]
mov edi, 0x4bb8e4
call fcn.0041feaa
mov edi, dword [esp + 0x18]
mov eax, dword [0x4bb8e4]
cmp dword [eax - 0xc], ebx
je 0x438cc0
push eax
lea esi, [esp + 0x24]
call fcn.0042b4c8
push str.cityid
lea eax, [esp + 0x40]
push eax
call fcn.0042b6d3
mov byte [esp + 0x9c], 3
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x438c52
cmp dword [eax + 0xc], 4
jne 0x438c52
mov eax, dword [eax + 0x14]
jmp 0x438c54
xor eax, eax
push eax
lea eax, [esp + 0x14]
push eax
call fcn.0041ffb0
push 0x4a443c
lea eax, [esp + 0x40]
push eax
lea esi, [esp + 0x28]
mov byte [esp + 0xa4], 2
call fcn.0042b6d3
mov eax, dword [edi + 0xc]
cmp dword [eax - 0xc], ebx
je 0x438cc0
push dword [esp + 0x10]
push eax
call fcn.0045b92e
test eax, eax
pop ecx
pop ecx
jne 0x438cc0
mov eax, dword [edi + 8]
cmp eax, ebx
jle 0x438cbc
cmp eax, 0x64
jge 0x438cc0
push ebx
call fcn.0045fad3
pop ecx
push eax
call fcn.0045fc08
pop ecx
call fcn.0045fc15
push 0x65
cdq
pop ecx
idiv ecx
cmp edx, dword [edi + 8]
jl 0x438cc0
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
push esi
push eax
call fcn.0045b92e
test eax, eax
pop ecx
pop ecx
jne 0x438dbf
mov edi, dword [edi + 0xc]
cmp dword [edi - 0xc], ebx
je 0x438dbf
cmp dword [esi - 0xc], ebx
je 0x438dbf
push edi
call fcn.0045b809
pop ecx
lea edi, [esp + 0x48]
mov ebx, eax
call fcn.00420112
mov byte [esp + 0x9c], 4
push dword [0x4bb890]
mov esi, 0x4a2470
push esi
lea eax, [esp + 0x80]
call fcn.0041fde1
push dword [0x4bb894]
lea eax, [esp + 0x88]
push esi
call fcn.0041fde1
add esp, 0x10
push dword [0x4bb898]
lea eax, [esp + 0x84]
push eax
call fcn.0041ffb0
push dword [0x4bb89c]
lea eax, [esp + 0x8c]
push eax
call fcn.0041ffb0
call fcn.0043d2c1
mov dword [esp + 0x60], eax
lea eax, [esp + 0x1c]
push eax
call fcn.0043e709
pop ecx
mov byte [esp + 0x9c], 5
push dword [eax]
lea eax, [esp + 0x88]
push eax
call fcn.0041ffb0
mov byte [esp + 0x9c], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.00405ffd
push dword [0x4bb8e4]
mov ecx, edi
push dword [esp + 0x18]
mov dword [esp + 0x70], 2
push ebx
push 4
push 0x1e
call fcn.00420333
mov ecx, edi
call fcn.00420183
lea ecx, [esp + 0x20]
mov byte [esp + 0x9c], 1
call fcn.0042b485
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.00405ffd
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
call fcn.00405ffd
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret