Function at 0x18014050
Capabilities:
Set current directory
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x180af1d0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
lea esi, [edi + 0x7c]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 2
pop ebx
push 0x2c
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x214], edi
test eax, eax
je 0x18014093
push 0
call fcn.1804b449
xor ebx, ebx
cmp dword [eax + 0x14], ebx
setne bl
call fcn.1805251d
mov cl, byte [eax + 1]
movzx eax, byte [edi + 0x11]
push ebx
push eax
mov al, byte [edi + 0x95]
mov bl, cl
mov ecx, dword [edi + 0xc]
call fcn.18015532
mov byte [edi + 0x94], al
movzx eax, byte [0x180b5819]
pop ecx
neg eax
pop ecx
sbb eax, eax
mov esi, 0x180b5ac0
and eax, esi
push 8
pop ebx
je 0x1801410e
push 1
push ebx
mov dword [ebp - 0x224], eax
call fcn.18001ccc
mov dword [ebp - 0x220], eax
movzx eax, byte [edi + 0x94]
push eax
push str._is_machine:__d_
lea eax, [ebp - 0x224]
mov dword [ebp - 0x21c], 1
mov dword [ebp - 0x218], ebx
call fcn.18001000
pop ecx
pop ecx
cmp byte [edi + 0x94], 0
mov eax, 0x1809e49c
jne 0x18014121
mov eax, 0x1809e4a0
push eax
push str.DealPlyLiveUpdateIsMachine
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
jne 0x18014136
call fcn.1800d4b3
mov al, byte [edi + 0x94]
cmp al, byte [0x180b581b]
je 0x18014150
call fcn.1801a028
push eax
call fcn.18011fbc
pop ecx
cmp byte [edi + 0x94], 0
je 0x18014166
call fcn.1800e29d
test al, al
je 0x18014166
mov al, 1
jmp 0x18014168
xor al, al
push eax
call fcn.180367df
xor eax, eax
mov dword [esp], 0x206
push eax
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push eax
call fcn.180769e0
mov edi, dword [edi]
add esp, 0xc
push 0x104
lea eax, [ebp - 0x210]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x180141c8
lea edi, [ebp - 0x210]
call fcn.18008a87
test al, al
mov eax, edi
jne 0x180141d2
push 0x208
push 0
push eax
call fcn.180769e0
add esp, 0xc
call fcn.1800d4b3
jmp 0x180142b9
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x180141c8
movzx eax, byte [0x180b5819]
neg eax
sbb eax, eax
and eax, esi
je 0x18014227
push 3
pop esi
push esi
push ebx
mov dword [ebp - 0x224], eax
call fcn.18001ccc
mov dword [ebp - 0x220], eax
lea eax, [ebp - 0x210]
push eax
push 0x1809e4a4
lea eax, [ebp - 0x224]
mov dword [ebp - 0x21c], esi
mov dword [ebp - 0x218], ebx
call fcn.18001000
pop ecx
pop ecx
mov esi, dword [ebp - 0x214]
mov ecx, esi
call fcn.18014a62
push eax
call fcn.18011fbc
movzx eax, byte [esi + 0x94]
pop ecx
push eax
call fcn.1801538a
pop ecx
push eax
call fcn.18011fbc
mov eax, dword [esi + 0xc]
pop ecx
cmp eax, 0x1e
ja 0x1801425f
call fcn.18014934
jmp 0x18014261
mov al, 1
test al, al
je 0x18014276
push esi
call fcn.18014973
test al, al
je 0x18014276
mov eax, 0xa0430607
jmp 0x180142b9
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x214]
call fcn.18003b7f
lea eax, [ebp - 0x214]
push eax
mov eax, dword [esi + 0xc]
mov ebx, esi
call fcn.180149dd
mov esi, eax
mov eax, dword [ebp - 0x214]
add eax, 0xfffffff0
call fcn.18003e0a
push esi
call fcn.18011fd0
movzx eax, al
neg eax
sbb eax, eax
pop ecx
and eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.18075e75
leave
ret