Function at 0x4043b0
Capabilities:
Create process on windows
Get geographical location
Set environment variable
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55e78d
mov eax, dword fs:[0]
push eax
sub esp, 0xa50
mov eax, dword [0x5b5be8]
xor eax, esp
mov dword [esp + 0xa48], eax
push ebx
push esi
push edi
mov eax, dword [0x5b5be8]
xor eax, esp
push eax
lea eax, [esp + 0xa60]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], 0
cmp byte [0x5be5e0], 0
mov dword [esp + 0x18], ebx
je 0x404455
mov eax, dword [ebx + 0x1b8]
push eax
lea ecx, [esp + 0x90]
push ecx
call fcn.00401320
mov edi, 8
add esp, 8
cmp dword [eax + 0x14], edi
jb 0x40442a
mov eax, dword [eax]
mov ecx, dword [ebx + 0x20]
push 0x40
push 0x58c80c
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [esp + 0xa0], edi
jb 0x404fb8
mov edx, dword [esp + 0x8c]
jmp 0x404faf
push str.action:_start_game.
push 2
mov eax, 0x5be6a0
call fcn.00401690
add esp, 8
push str.render
call fcn.00424920
mov edi, eax
call fcn.004249a0
cmp al, 1
jne 0x404514
push 9
lea edi, [ebx + 0x1b0]
push str.__render:
mov ecx, edi
call fcn.0040c0b0
lea eax, [esp + 0x8c]
push str.render
push eax
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov esi, 0x10
mov dword [esp + 0xa68], 0
cmp dword [eax + 0x14], esi
jb 0x4044c9
mov edx, dword [eax]
jmp 0x4044cb
mov edx, eax
test edx, edx
jne 0x4044d3
xor eax, eax
jmp 0x4044e5
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4044d8
sub eax, ebx
mov ebx, dword [esp + 0x18]
push eax
push edx
mov ecx, edi
call fcn.0040c0b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x404519
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.004310e1
add esp, 4
jmp 0x404519
mov esi, 0x10
push str.full
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x404540
push 6
lea ecx, [ebx + 0x1b0]
push str.__full
call fcn.0040c0b0
push str.account
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x40464e
push 0x58c85c
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x40464e
push 0xa
push str.__account:
lea ecx, [ebx + 0x1b0]
call fcn.0040c0b0
lea edx, [esp + 0x8c]
push str.account
push edx
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov dword [esp + 0xa68], 1
cmp dword [eax + 0x14], esi
jb 0x4045b0
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x1b0]
call fcn.0040c1b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4045e0
mov eax, dword [esp + 0x8c]
push eax
call fcn.004310e1
add esp, 4
push 6
push str.__otp:
lea ecx, [ebx + 0x1b0]
call fcn.0040c0b0
lea ecx, [esp + 0x8c]
push 0x58c85c
push ecx
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov dword [esp + 0xa68], 2
cmp dword [eax + 0x14], esi
jb 0x40461e
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x1b0]
call fcn.0040c1b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x40464e
mov edx, dword [esp + 0x8c]
push edx
call fcn.004310e1
add esp, 4
push str.locale
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x40475c
push str.country
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x40475c
push 9
push str.__locale:
lea ecx, [ebx + 0x1b0]
call fcn.0040c0b0
lea eax, [esp + 0x8c]
push str.locale
push eax
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov dword [esp + 0xa68], 3
cmp dword [eax + 0x14], esi
jb 0x4046be
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x1b0]
call fcn.0040c1b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4046ee
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.004310e1
add esp, 4
push 0xa
push str.__country:
lea ecx, [ebx + 0x1b0]
call fcn.0040c0b0
lea edx, [esp + 0x8c]
push str.country
push edx
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov dword [esp + 0xa68], 4
cmp dword [eax + 0x14], esi
jb 0x40472c
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x1b0]
call fcn.0040c1b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x40475c
mov eax, dword [esp + 0x8c]
push eax
call fcn.004310e1
add esp, 4
push str.gamexp_sid
call fcn.00424920
mov edi, eax
call fcn.004249a0
cmp al, 1
jne 0x40480a
push 0xd
lea edi, [ebx + 0x1b0]
push str.__gamexp_sid:
mov ecx, edi
call fcn.0040c0b0
lea ecx, [esp + 0x8c]
push str.gamexp_sid
push ecx
call fcn.00424920
push eax
mov ecx, 0x58bd25
call fcn.00424710
mov dword [esp + 0xa68], 5
cmp dword [eax + 0x14], esi
jb 0x4047ba
mov edx, dword [eax]
jmp 0x4047bc
mov edx, eax
test edx, edx
jne 0x4047c4
xor eax, eax
jmp 0x4047dd
mov eax, edx
lea ebx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4047d0
sub eax, ebx
mov ebx, dword [esp + 0x18]
push eax
push edx
mov ecx, edi
call fcn.0040c0b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x40480a
mov edx, dword [esp + 0x8c]
push edx
call fcn.004310e1
add esp, 4
push str.check_digital_signer
call fcn.00424920
mov edi, eax
call fcn.004249a0
cmp al, 1
jne 0x4048ae
push 0x17
lea edi, [ebx + 0x1b0]
push str.__check_digital_signer:
mov ecx, edi
call fcn.0040c0b0
lea eax, [esp + 0x8c]
push str.check_digital_signer
push eax
call fcn.00424920
push eax
xor ecx, ecx
call fcn.00424710
mov dword [esp + 0xa68], 6
cmp dword [eax + 0x14], esi
jb 0x404865
mov edx, dword [eax]
jmp 0x404867
mov edx, eax
test edx, edx
jne 0x40486f
xor eax, eax
jmp 0x404881
mov eax, edx
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404874
sub eax, ebx
mov ebx, dword [esp + 0x18]
push eax
push edx
mov ecx, edi
call fcn.0040c0b0
mov dword [esp + 0xa68], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4048ae
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.004310e1
add esp, 4
cmp byte [ebx + 0x1df], 1
jne 0x40497b
push 0x58c8e8
call fcn.00424920
mov edi, eax
call fcn.004249a0
test al, al
je 0x4048f3
push 0x58c8e8
call fcn.00424920
xor ebx, ebx
mov ecx, eax
call fcn.004247d0
mov edx, dword [esp + 0x18]
cmp eax, dword [edx + 0x1e0]
je 0x40497b
push 0x3c
lea eax, [esp + 0x110]
push 0
push eax
call fcn.00535390
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x1e4]
add esp, 0xc
lea eax, [esp + 0x10c]
push eax
mov dword [esp + 0x110], 0x3c
mov dword [esp + 0x114], 0x40
mov dword [esp + 0x11c], str.open
mov dword [esp + 0x120], edx
mov dword [esp + 0x12c], 5
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
jne 0x404fb8
mov ecx, dword [esp + 0x11c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x5be6a0
call fcn.00414260
add esp, 0xc
jmp 0x404fb8
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, 7
xor edx, edx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], 0
mov word [esp + 0xc4], dx
push 0x58
mov dword [esp + 0xa6c], eax
call fcn.004310a7
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0xa68], 8
test eax, eax
je 0x4049d7
push eax
call fcn.00423b70
jmp 0x4049d9
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0xa68], 9
mov edx, dword [eax + 0x1b0]
lea ecx, [esp + 0x20]
call fcn.00425330
push str.check_digital_signer
xor ebx, ebx
lea ecx, [esp + 0x24]
call fcn.004247d0
test eax, eax
setne al
mov dword [esp + 0xfc], 0xb105d00f
mov dword [esp + 0x100], 0xf91be0b3
mov dword [esp + 0x104], 0x91c8c3cb
mov dword [esp + 0x108], 0x9cde8e5
lea esi, [ebx + 7]
cmp al, 1
jne 0x404b35
xor ecx, ecx
mov word [esp + 0xe0], cx
push 0xe
mov eax, str.Gala_Lab_Corp.
lea ecx, [esp + 0xe4]
mov dword [esp + 0xf8], esi
mov dword [esp + 0xf4], ebx
call fcn.0040a600
mov edx, dword [esp + 0x18]
mov byte [esp + 0xa68], 0xa
mov eax, dword [edx + 0x194]
push eax
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x24], 1
call fcn.00401320
add esp, 8
mov dword [esp + 0xa68], 0xb
cmp dword [eax + 0x14], 8
mov dword [esp + 0x1c], 3
jb 0x404ab5
mov eax, dword [eax]
xor ecx, ecx
mov word [esp + 0xa8], cx
mov ecx, eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], ebx
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x404ad2
sub ecx, edi
sar ecx, 1
push ecx
lea ecx, [esp + 0xac]
call fcn.0040a600
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x104]
push ecx
mov dword [esp + 0xa74], 0xc
mov ebx, esi
lea edx, [esp + 0xec]
lea ecx, [esp + 0xb4]
mov dword [esp + 0x28], ebx
call fcn.004271f0
add esp, 0xc
test al, al
jne 0x404b39
mov byte [esp + 0x17], 1
jmp 0x404b3e
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x17], 0
mov edi, 8
test bl, 4
je 0x404b80
and ebx, 0xfffffffb
cmp dword [esp + 0xbc], edi
jb 0x404b64
mov edx, dword [esp + 0xa8]
push edx
call fcn.004310e1
add esp, 4
xor eax, eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], 0
mov word [esp + 0xa8], ax
test bl, 2
je 0x404bbd
and ebx, 0xfffffffd
cmp dword [esp + 0xa0], edi
jb 0x404ba1
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.004310e1
add esp, 4
xor edx, edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], dx
mov dword [esp + 0xa68], 9
test bl, 1
je 0x404be6
cmp dword [esp + 0xf4], edi
jb 0x404be6
mov eax, dword [esp + 0xe0]
push eax
call fcn.004310e1
add esp, 4
cmp byte [esp + 0x17], 0
je 0x404c23
mov eax, dword [esp + 0xc4]
cmp dword [esp + 0xd8], edi
jae 0x404c04
lea eax, [esp + 0xc4]
push eax
push str.action:_start_game._failed_verify_digital_sign.__s_
push 3
mov eax, 0x5be6a0
call fcn.00401690
add esp, 0xc
mov eax, 0xb
jmp 0x404d3a
xor esi, esi
push esi
push esi
xor eax, eax
push esi
lea ecx, [esp + 0x108]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
push ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], 1
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov edi, eax
cmp edi, esi
jne 0x404d71
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jne 0x404d3a
push 0x44
lea ecx, [esp + 0x48]
push 0
push ecx
call fcn.00535390
add esp, 0xc
push 0x7ff
lea edx, [esp + 0x259]
push 0
push edx
mov dword [esp + 0x50], 0x44
mov byte [esp + 0x260], 0
call fcn.00535390
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x1b0]
mov ecx, dword [ecx + 0x194]
add esp, 0xc
push eax
push ecx
push str.__s___s
lea eax, [esp + 0x260]
push 0x800
push eax
call fcn.005327fd
add esp, 0x14
lea ecx, [esp + 0x254]
push ecx
push str.action:_start_game._cmd:__s
push 1
mov eax, 0x5be6a0
call fcn.00401690
add esp, 0xc
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x48]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
lea ecx, [esp + 0x274]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x404f0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x404f0b
xor edx, edx
cmp dword [esp + 0xd4], edx
je 0x404d5d
cmp dword [esp + 0xd8], 8
mov edx, dword [esp + 0xc4]
jae 0x404d5d
lea edx, [esp + 0xc4]
push 0x5be6a0
mov ecx, eax
call fcn.00414330
add esp, 4
jmp 0x404f7f
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x194]
lea ecx, [esp + 0x8c]
call fcn.00409740
lea edx, [esp + 0x8c]
mov byte [esp + 0xa68], 0xd
call fcn.00422980
push str._RUNNER
mov eax, edx
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.0040b1b0
add esp, 0xc
push 0x3f
lea edx, [esp + 0x111]
push esi
mov byte [esp + 0xa70], 0xe
push edx
mov byte [esp + 0x118], 0
call fcn.00535390
add esp, 0xc
push edi
push str._I64d
lea eax, [esp + 0x114]
push 0x40
push eax
call fcn.005327fd
mov eax, dword [esp + 0xb8]
mov esi, 0x10
add esp, 0x10
cmp dword [esp + 0xbc], esi
jae 0x404e0a
lea eax, [esp + 0xa8]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
lea ecx, [esp + 0x10c]
push ecx
push eax
call ebx
push 0x103
lea edx, [esp + 0x151]
push 0
push edx
mov byte [esp + 0x158], 0
call fcn.00535390
add esp, 0xc
push 0x104
lea eax, [esp + 0x150]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.PSAPI.DLL_GetModuleFileNameExA]
test eax, eax
je 0x404eaa
push str._PARENT
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0xe8]
push edx
call fcn.0040b1b0
mov eax, dword [esp + 0xec]
add esp, 0xc
cmp dword [esp + 0xf4], esi
jae 0x404e8e
lea eax, [esp + 0xe0]
lea ecx, [esp + 0x14c]
push ecx
push eax
call ebx
lea esi, [esp + 0xe0]
call fcn.004097a0
mov esi, 0x10
cmp dword [esp + 0xbc], esi
jb 0x404ec3
mov edx, dword [esp + 0xa8]
push edx
call fcn.004310e1
add esp, 4
mov byte [esp + 0xa68], 9
mov dword [esp + 0xbc], 0xf
mov dword [esp + 0xb8], 0
mov byte [esp + 0xa8], 0
cmp dword [esp + 0xa0], esi
jb 0x404c7e
mov eax, dword [esp + 0x8c]
push eax
call fcn.004310e1
add esp, 4
jmp 0x404c7e
test edi, edi
je 0x404f7f
push str.action:_start_game._wait_signal.
push 1
mov eax, 0x5be6a0
call fcn.00401690
add esp, 8
push 0
push 1
push edi
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0xea60
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x404f54
mov edx, dword [esp + 0x24]
push 1
push edx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push str.action:_start_game._timeout_signal._game_exit.
push 3
jmp 0x404f5b
push str.action:_start_game._set_signal._launch_successed.
push 1
mov eax, 0x5be6a0
call fcn.00401690
mov eax, dword [esp + 0x2c]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 8
push eax
call ebx
mov ecx, dword [esp + 0x28]
push ecx
call ebx
push edi
call ebx
mov byte [esp + 0xa68], 7
mov edi, dword [esp + 0x20]
test edi, edi
je 0x404f9e
push edi
call fcn.00423ce0
push edi
call fcn.004310e1
add esp, 4
cmp dword [esp + 0xd8], 8
jb 0x404fb8
mov edx, dword [esp + 0xc4]
push edx
call fcn.004310e1
add esp, 4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov ecx, dword [esp + 0xa60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa48]
xor ecx, esp
call fcn.005320a3
mov esp, ebp
pop ebp
ret