Function at 0x403430
Capabilities:
Check if file exists
Get geographical location
Get number of processors
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47b8b4
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4a5018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x68], ebx
push dword [ebx + 0x30]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x403dd7
mov esi, dword [0x4aaa7c]
test esi, esi
je 0x403485
lock inc dword [esi + 4]
mov esi, dword [0x4aaa7c]
mov ecx, dword [0x4aaa78]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 4], 0
lea edx, [ebp - 0x44]
mov eax, dword [ecx]
push edx
call dword [eax + 0x10c]
push dword [ebx + 0x30]
push 1
push str.ActFlag
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [ebp - 0x44]
or ebx, 0xffffffff
mov edi, eax
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4034d5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x4034ff
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4034ff
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4034ff
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
test edi, edi
jne 0x403dd7
lea ecx, [ebp - 0x44]
call fcn.0041e2c0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 1
call fcn.0041e190
mov byte [ebp - 4], 2
push 0x40
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
call fcn.004551d2
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x58], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
push 7
mov dword [ebp - 0x28], edi
push 0x492bdc
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x58]
call fcn.00404db0
push 3
push 0x492be4
mov ecx, eax
call fcn.004065c0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4035bd
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4035b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e00
push edx
push ecx
call fcn.00455202
add esp, 8
push 7
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push str.product
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
mov esi, dword [0x4aaa7c]
test esi, esi
je 0x4035f9
lock inc dword [esi + 4]
mov esi, dword [0x4aaa7c]
mov ecx, dword [0x4aaa78]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
mov byte [ebp - 4], 6
lea edx, [ebp - 0x30]
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
mov edx, dword [eax]
call fcn.00422410
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x58]
mov edi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, edi
lea ecx, [edx + 1]
mov dword [ebp - 0x2c], ecx
nop word [eax + eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x403640
sub edx, dword [ebp - 0x2c]
mov ecx, eax
push edx
push edi
call fcn.004065c0
mov byte [ebp - 4], 7
mov eax, ebx
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403671
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40368f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x4036b2
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4036b2
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4036b2
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4036ea
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4036e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e05
push edx
push ecx
call fcn.00455202
add esp, 8
push 3
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x492bf0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x44]
call fcn.00422410
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x58]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x403738
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403768
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4037a0
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403796
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e0a
push edx
push ecx
call fcn.00455202
add esp, 8
push 2
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x492bf4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x5c]
call fcn.00422410
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x58]
mov esi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.00404db0
mov edx, esi
lea edi, [edx + 1]
nop
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4037f0
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.004065c0
mov byte [ebp - 4], 0xb
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403820
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403858
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40384e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e0f
push edx
push ecx
call fcn.00455202
add esp, 8
push 0x2c
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
call fcn.004551d2
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x28]
push 4
mov dword [ebp - 0x28], 0
push str.time
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
xor ecx, ecx
mov byte [ebp - 4], 0xe
call fcn.0041fe10
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x28]
push eax
call fcn.00404c50
mov byte [ebp - 4], 0xd
mov dword [eax], esi
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403900
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4038f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e14
push edx
push ecx
call fcn.00455202
add esp, 8
push 3
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push 0x492c00
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.004065c0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x50]
call fcn.00404c50
mov esi, eax
call fcn.0041da60
mov dword [esi], eax
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403979
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40396f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e19
push edx
push ecx
call fcn.00455202
add esp, 8
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e1e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x38], eax
mov esi, dword [0x4aaa7c]
test esi, esi
je 0x4039a7
lock inc dword [esi + 4]
mov esi, dword [0x4aaa7c]
mov ecx, dword [0x4aaa78]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov eax, dword [ecx]
push esp
call dword [eax + 0xac]
lea eax, [ebp - 0x38]
push eax
push 1
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x58]
call fcn.0041ff00
add esp, 0x20
mov byte [ebp - 4], 0x10
test esi, esi
je 0x4039fe
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4039fe
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4039fe
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e28
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
push 0x492c04
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x12
call fcn.004067d0
test al, al
jne 0x403a3c
push 4
push 0x492c04
lea ecx, [ebp - 0x34]
call fcn.004069d0
mov eax, dword [0x4aaa84]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x403a54
lock inc dword [eax + 4]
mov eax, dword [0x4aaa84]
mov dword [ebp - 0x30], eax
mov ecx, dword [0x4aaa80]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 0x14
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e32
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x60], esi
mov byte [ebp - 4], 0x15
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e3c
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x48], edi
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x17
push ecx
lea ecx, [ebp - 0x48]
mov edx, eax
push ecx
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x40]
call fcn.004029a0
add esp, 0xc
mov byte [ebp - 4], 0x19
mov eax, ebx
mov edx, dword [ebp - 0x64]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403aea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1a
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x403b05
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1b
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x403b20
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x403b46
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x403b46
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x403b46
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403b64
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e46
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
push str.application_json
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1e
call fcn.004067d0
test al, al
jne 0x403ba2
push 0x10
push str.application_json
lea ecx, [ebp - 0x30]
call fcn.004069d0
mov byte [ebp - 4], 0x1f
call fcn.00402880
mov ecx, eax
test ecx, ecx
je 0x403e50
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
push str.Content_Type
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x20
call fcn.004067d0
test al, al
jne 0x403be4
push 0xc
push str.Content_Type
lea ecx, [ebp - 0x34]
call fcn.004069d0
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x34]
add ecx, 0x28
push eax
call fcn.00417ba0
mov byte [ebp - 4], 0x1f
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403c19
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403c37
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x38]
cmp dword [esi - 4], 1
mov edi, dword [esi - 0xc]
mov dword [ebp - 0x48], edi
jle 0x403c52
push edi
lea ecx, [ebp - 0x38]
call fcn.00405400
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
add ecx, 0x30
mov dword [ebp - 0x2c], ecx
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x30], edx
sub edx, eax
cmp edi, edx
jae 0x403c6d
add eax, edi
jmp 0x403c9f
jbe 0x403ca2
mov eax, dword [ecx + 8]
sub eax, dword [ecx]
cmp edi, eax
jbe 0x403c84
push ecx
push edi
call fcn.00412b60
mov ecx, dword [ebp - 0x2c]
jmp 0x403ca2
sub edi, edx
push edi
push 0
push dword [ebp - 0x30]
call fcn.004573c0
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
add eax, edi
mov edi, dword [ebp - 0x48]
mov dword [ecx + 4], eax
push edi
push esi
push dword [ecx]
call fcn.00456e40
mov edi, dword [ebp - 0x3c]
add esp, 4
mov dword [ebp - 0x48], esp
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
test edi, edi
je 0x403ccb
lock inc dword [edi + 4]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov byte [ebp - 4], 0x22
mov eax, dword [0x4aa590]
test eax, eax
jne 0x403d01
push 0x7c
call fcn.004551d2
add esp, 4
mov dword [ebp - 0x60], eax
mov ecx, eax
mov byte [ebp - 4], 0x23
call fcn.00424c10
mov byte [ebp - 4], 0x22
mov dword [0x4aa590], eax
mov ecx, dword [ebp - 0x68]
push 0
push ecx
push dword [ecx + 0x2c]
mov ecx, eax
mov byte [ebp - 4], 0x1d
call fcn.00425070
test eax, eax
je 0x403d22
mov dword [ebp - 0x2c], 1
jmp 0x403d31
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [ebp - 0x2c], 0
test edi, edi
je 0x403d54
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x403d54
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, ebx
lock xadd dword [edi + 8], eax
jne 0x403d54
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0xd
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x403d6f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x50]
push dword [eax + 4]
lea eax, [ebp - 0x50]
push eax
mov ecx, eax
call fcn.004059c0
push 0x2c
push dword [ebp - 0x50]
call fcn.00455202
add esp, 8
lea ecx, [ebp - 0x58]
call fcn.00404f10
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x403db3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x403dd2
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
jmp 0x403de4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00454d47
mov esp, ebp
pop ebp
ret
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
call fcn.00459a0a
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
push 0x80004005
call fcn.00402980
int3