Function at 0x403be0
Capabilities:
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5416c1
mov eax, dword fs:[0]
push eax
sub esp, 0xc9c
mov eax, dword [0x594aa4]
xor eax, esp
mov dword [esp + 0xc98], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x594aa4]
xor eax, esp
push eax
lea eax, [esp + 0xcb0]
mov dword fs:[0], eax
mov eax, dword [esp + 0xcc4]
mov ebp, dword [esp + 0xcc0]
push str.91095A15_3C46_43b5_BA5F_462064037E59
push str.91095A15_3C46_43b5_BA5F_462064037E59
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.004822b6
add esp, 8
test eax, eax
jne 0x404147
push 0x408
call fcn.00446843
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x404147
push eax
call fcn.0041d2f0
mov edi, eax
mov dword [esp + 0x3c], edi
cmp edi, ebx
je 0x404147
push 0x206
lea eax, [esp + 0x82]
xor edx, edx
push ebx
push eax
mov word [esp + 0x88], dx
call fcn.004804c0
add esp, 0xc
push 0x104
lea ecx, [esp + 0x80]
push ecx
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor edx, edx
mov esi, 7
lea eax, [esp + 0x7c]
mov word [esp + 0x64], dx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x403cd0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x68]
call fcn.00408820
push 0x57d574
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0xcc4], ebx
call fcn.0040ad40
add esp, 0xc
mov byte [esp + 0xcb8], 1
cmp dword [eax + 0x18], 8
jb 0x403d22
mov eax, dword [eax + 4]
jmp 0x403d25
add eax, 4
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov byte [esp + 0xcb8], bl
cmp dword [esp + 0x38], 8
jb 0x403d4a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0044687d
add esp, 4
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
mov ecx, str.12010000
mov eax, edi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403d80
cmp dl, bl
je 0x403d7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403d80
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x403d60
xor eax, eax
jmp 0x403d85
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x403de9
mov ecx, str.12020000
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403db0
cmp dl, bl
je 0x403dac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403db0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x403d90
xor eax, eax
jmp 0x403db5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x403de9
mov ecx, str.12030000
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403de0
cmp dl, bl
je 0x403ddc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403de0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x403dc0
xor eax, eax
jmp 0x403de5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x403ded
mov dword [esp + 0x1c], esi
push 0x6590
call fcn.0048158c
add esp, 4
push 0xa28
mov esi, eax
push ebx
push esi
call fcn.004804c0
add esp, 0xc
push str.__DVersion_:_1.8_
push esi
call fcn.00481ac6
push 0xa27
lea edx, [esp + 0x291]
push ebx
push edx
mov byte [esp + 0x298], bl
call fcn.004804c0
add esp, 0x14
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x288]
push ecx
push 0x5ab8e8
mov dword [esp + 0x4c], 0xa28
call fcn.004275f0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403e57
sub eax, edx
lea edx, [esp + 0x284]
push edx
add eax, esi
push str.__Machid_:__s_
push eax
call fcn.00481ac6
add esp, 0xc
lea ebx, [esp + 0x44]
call fcn.00405570
mov eax, esi
mov byte [esp + 0xcb8], 2
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403e90
mov ecx, dword [esp + 0x48]
mov ebx, 0x10
sub eax, edx
cmp dword [esp + 0x5c], ebx
jae 0x403eac
lea ecx, [esp + 0x48]
push ecx
add eax, esi
push str.__AppVersion_:__s_
push eax
call fcn.00481ac6
add esp, 0xc
mov ecx, 0x57d5f0
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403ee4
test dl, dl
je 0x403ee0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403ee4
add eax, 2
add ecx, 2
test dl, dl
jne 0x403ec4
xor eax, eax
jmp 0x403ee9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, esi
lea edx, [eax + 1]
je 0x403f88
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403ef6
sub eax, edx
mov edi, eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004022f0
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x403f1c
mov eax, dword [eax + 4]
jmp 0x403f1f
add eax, 4
push eax
push str.__GameID_:__s_
add edi, esi
push edi
call fcn.00481ac6
add esp, 0xc
cmp dword [esp + 0x38], ebx
jb 0x403f43
mov edx, dword [esp + 0x24]
push edx
call fcn.0044687d
add esp, 4
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403f48
sub eax, edx
mov edi, eax
lea eax, [ebp + 0xc8]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004022f0
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x403f7a
mov eax, dword [eax + 4]
push eax
push str.__GVersion_:__s_
jmp 0x404012
add eax, 4
push eax
push str.__GVersion_:__s_
jmp 0x404012
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403f88
sub eax, edx
mov edi, eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004022f0
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x403fae
mov eax, dword [eax + 4]
jmp 0x403fb1
add eax, 4
push eax
push str.__Game_ID_:__s_
add edi, esi
push edi
call fcn.00481ac6
add esp, 0xc
cmp dword [esp + 0x38], ebx
jb 0x403fd5
mov edx, dword [esp + 0x24]
push edx
call fcn.0044687d
add esp, 4
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403fe0
sub eax, edx
mov edi, eax
lea eax, [ebp + 0xc8]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004022f0
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x404009
mov eax, dword [eax + 4]
jmp 0x40400c
add eax, 4
push eax
push str.__Game_Version_:__s_
add edi, esi
push edi
call fcn.00481ac6
add esp, 0xc
cmp dword [esp + 0x38], ebx
jb 0x404030
mov edx, dword [esp + 0x24]
push edx
call fcn.0044687d
add esp, 4
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404035
sub eax, edx
mov edi, eax
lea eax, [ebp + 0x170]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004022f0
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x40405e
mov eax, dword [eax + 4]
jmp 0x404061
add eax, 4
push eax
push str.__Appchanel_:__s_
add edi, esi
push edi
call fcn.00481ac6
add esp, 0xc
cmp dword [esp + 0x38], ebx
jb 0x404085
mov edx, dword [esp + 0x24]
push edx
call fcn.0044687d
add esp, 4
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4040bc
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404092
sub eax, edx
je 0x4040bc
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4040a2
sub eax, edx
push edi
add eax, esi
push str.__ErrorMsg_:__s_
push eax
call fcn.00481ac6
add esp, 0xc
cmp byte [ebp + 0x2f0], 0
jne 0x4040e0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4040d0
push 0x3e8
call edi
cmp byte [ebp + 0x2f0], 0
je 0x4040d0
mov edi, dword [esp + 0x3c]
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push esi
push edx
mov ecx, edi
call eax
push esi
call fcn.00481397
mov edx, dword [edi]
mov eax, dword [edx + 0x3c]
add esp, 4
push 1
mov ecx, edi
call eax
cmp dword [esp + 0x5c], ebx
jb 0x40411e
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044687d
add esp, 4
cmp dword [esp + 0x78], 8
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jb 0x404147
mov edx, dword [esp + 0x64]
push edx
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0xcb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc98]
xor ecx, esp
call fcn.0047ff9f
add esp, 0xca8
ret 8