Function at 0x403fa0
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54273f
mov eax, dword fs:[0]
push eax
mov eax, 0x2340
call fcn.005260d0
mov eax, dword [0x5a574c]
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
call fcn.00403630
push 0
call fcn.0043ea08
test eax, eax
jne 0x403ff3
push 0xffffffffffffffff
push eax
push 0x67
call fcn.00433ca6
jmp 0x404542
push 4
call fcn.0043ce82
test eax, eax
je 0x404008
mov dword [eax], vtable.CCustomOccManager.0
mov esi, eax
jmp 0x40400a
xor esi, esi
push 8
call fcn.00426184
add esp, 4
mov dword [ebp - 0x2344], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x40402e
mov ecx, eax
call fcn.004033c0
jmp 0x404030
xor eax, eax
push esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebx + 0xb8], eax
call fcn.0043bd2b
add esp, 4
push str.071784A2_EE35_4e6a_92D0_6E7A4B985171
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x40406f
push 0
push 0
push str.Please_restart_Pangya_again.
call fcn.00433c58
jmp 0x404542
mov edx, dword [ebx + 0x64]
test edx, edx
jne 0x40407a
xor eax, eax
jmp 0x404089
mov eax, edx
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404080
sub eax, edi
push eax
push edx
lea ecx, [ebx + 0xbc]
call fcn.00401520
push 4
push str..exe
lea ecx, [ebx + 0xbc]
call fcn.00403bc0
mov eax, dword [ebx + 0x48]
push eax
lea ecx, [ebp - 0xffc]
mov dword [ebp - 4], 1
call fcn.00403810
test al, al
je 0x404537
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
lea ecx, [ebp - 0x39c]
push ecx
push 0
call esi
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x298]
push eax
lea ecx, [ebp - 0xaa0]
push ecx
lea edx, [ebp - 0x234c]
push edx
lea eax, [ebp - 0x39c]
push eax
call fcn.00525fdb
add esp, 0x14
push reloc.OLEAUT32.dll_SysReAllocString
mov ecx, 0x5a6e50
call fcn.004149f0
mov ecx, dword [ebx + 0x48]
push str.not_used
push ecx
call fcn.00538475
push 0xc
push str.fail_to_update
lea edx, [ebp - 0x118]
push str._s__d_
push edx
call fcn.00525791
add esp, 0x18
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.SoftwareNtreev_USAPangya
call fcn.004018d0
mov ecx, 0x5a6e50
call fcn.00414cd0
test eax, eax
jne 0x404174
push eax
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.00433c58
jmp 0x404537
push 0x8b0
call fcn.00426184
add esp, 4
mov dword [ebp - 0x2344], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x404196
mov ecx, eax
call fcn.00408080
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.v0.00
mov byte [ebp - 4], 1
call fcn.004018d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.Launcher_Version
mov byte [ebp - 4], 3
call fcn.004018d0
lea ecx, [ebp - 0x2348]
push ecx
mov ecx, 0x5a6e50
mov byte [ebp - 4], 1
call fcn.00414e10
lea edx, [ebp - 0x2348]
push str.v5.01
push edx
mov byte [ebp - 4], 4
call fcn.00403960
add esp, 8
test al, al
je 0x404236
mov eax, dword [0x5a6c44]
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.v5.01
mov byte [eax + 0x1e], 1
call fcn.004018d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.Launcher_Version
mov byte [ebp - 4], 5
call fcn.004018d0
mov ecx, 0x5a6e50
mov byte [ebp - 4], 4
call fcn.00414b70
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.not_used
call fcn.004018d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.Argument
mov byte [ebp - 4], 6
call fcn.004018d0
mov ecx, 0x5a6e50
mov byte [ebp - 4], 4
call fcn.00414b70
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.updater.exe
call fcn.004018d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.Patcher
mov byte [ebp - 4], 7
call fcn.004018d0
mov ecx, 0x5a6e50
mov byte [ebp - 4], 4
call fcn.00414b70
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.updater.exe
call fcn.004018d0
push ecx
mov ecx, esp
mov dword [ebp - 0x2344], esp
push str.Launcher
mov byte [ebp - 4], 8
call fcn.004018d0
mov ecx, 0x5a6e50
mov byte [ebp - 4], 4
call fcn.00414b70
push reloc.OLEAUT32.dll_SysReAllocString
mov ecx, 0x5a6e60
call fcn.004149f0
push 0
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x2340], esp
push str.SoftwareNtreev_USAPangyaOption
call fcn.004018d0
mov ecx, 0x5a6e60
call fcn.00414cd0
test eax, eax
jne 0x404339
mov ecx, dword [0x5a6c44]
test ecx, ecx
je 0x404324
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
push 0
push 0
lea ecx, [ebp - 0x118]
push ecx
call fcn.00433c58
jmp 0x40452c
push 0x1ff
lea edx, [ebp - 0x59b]
push 0
push edx
mov byte [ebp - 0x59c], 0
call fcn.00526030
add esp, 0xc
push 0x200
lea eax, [ebp - 0x59c]
push eax
push 0
call esi
lea ecx, [ebp - 0x59c]
push ecx
lea ecx, [ebp - 0xae8]
call fcn.0040e710
lea ecx, [ebp - 0xae8]
mov byte [ebp - 4], 9
call fcn.0040ea30
mov edx, 0x5a6c50
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404390
mov eax, 0x5a6c50
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4043a2
sub eax, edx
jne 0x4043f3
push 0x27
push str.fail_to_update
lea edx, [ebp - 0x218]
push str._s__d_
push edx
call fcn.00525791
add esp, 0x10
push 0
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.00433c58
mov ecx, dword [0x5a6c44]
test ecx, ecx
je 0x40451d
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
jmp 0x40451d
push 0x5a6c50
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov ecx, ebx
call fcn.00403c80
push 0
lea ecx, [ebp - 0x233c]
call fcn.004053f0
mov eax, dword [ebx + 0x48]
lea edx, [ebp - 0x14a0]
mov byte [ebp - 4], 0xa
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404421
lea ecx, [ebp - 0x233c]
mov dword [ebx + 0x20], ecx
call fcn.00426a3a
cmp eax, 1
jne 0x4044f5
mov edi, dword [0x5a6c44]
cmp byte [edi + 0x1c], 0
jne 0x4044f5
push 0x3ff
lea edx, [ebp - 0x99b]
push 0
push edx
mov byte [ebp - 0x99c], 0
call fcn.00526030
mov edx, dword [ebx + 0x48]
mov eax, edx
add esp, 0xc
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404477
sub eax, esi
mov eax, dword [edi + 8]
je 0x40449d
push edx
push eax
lea eax, [ebp - 0x99c]
push str._s__s
push eax
call fcn.00525791
add esp, 0x10
jmp 0x4044b2
push eax
lea ecx, [ebp - 0x99c]
push 0x553be8
push ecx
call fcn.00525791
add esp, 0xc
cmp dword [ebp - 0x1000], 1
jne 0x4044e6
lea eax, [ebp - 0x99c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4044c2
mov edx, dword [str.__safe]
mov cx, word [0x553be4]
mov dword [eax], edx
mov dl, byte [0x553be6]
mov word [eax + 4], cx
mov byte [eax + 6], dl
lea eax, [ebp - 0x99c]
push eax
call fcn.004035a0
add esp, 4
mov ecx, ebx
call fcn.00403c80
mov ecx, dword [0x5a6c44]
test ecx, ecx
je 0x40450e
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [ebp - 0x233c]
mov byte [ebp - 4], 9
call fcn.00403df0
lea ecx, [ebp - 0xae8]
mov byte [ebp - 4], 4
call fcn.0040e470
lea ecx, [ebp - 0x2348]
call fcn.00412650
lea ecx, [ebp - 0xffc]
call fcn.00403410
xor eax, eax
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.00525222
mov esp, ebp
pop ebp
ret