Function at 0x477020
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
mov eax, dword [0x4d5630]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
mov dword [ebp - 0x19c], 0
call fcn.00478670
add esp, 4
lea ecx, [ebp - 0x1dc]
call fcn.0043fd10
lea eax, [ebp - 0x18c]
push eax
call fcn.00477630
add esp, 4
test al, al
jne 0x477081
lea ecx, [ebp - 0x1dc]
call fcn.0043fd90
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00486d53
mov esp, ebp
pop ebp
ret
call fcn.0047c300
call fcn.0047cc40
test al, al
je 0x477065
call fcn.0047cbd0
push eax
call fcn.00477470
add esp, 4
test al, al
je 0x477065
call fcn.00477590
mov byte [0x4d812c], al
call fcn.0047b3f0
call fcn.004794a0
call fcn.0047e060
mov ecx, eax
call fcn.0047e160
test al, al
je 0x477065
push esi
mov esi, dword [ebp - 0x18c]
lea ecx, [ebp - 0x198]
push esi
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
call fcn.0047e070
test al, al
je 0x47711a
push esi
push 0x4b9834
push str._s_u
lea eax, [ebp - 0x9c]
push 0x26
push eax
call fcn.0048780d
add esp, 0x14
test eax, eax
jg 0x477142
lea ecx, [ebp - 0x198]
call fcn.00476c00
lea ecx, [ebp - 0x1dc]
call fcn.0043fd90
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00486d53
mov esp, ebp
pop ebp
ret
xor eax, eax
push edi
mov word [ebp - 0x52], ax
lea eax, [ebp - 0x9c]
push eax
push 0
push 2
call dword [sym.imp.KERNEL32.DLL_OpenEventW]
push eax
lea ecx, [ebp - 0x188]
call fcn.00476a90
mov edi, dword [ebp - 0x188]
test edi, edi
je 0x477355
cmp edi, 0xffffffff
je 0x477355
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
push eax
push 0x4b986c
push str._s_u
lea eax, [ebp - 0x50]
push 0x26
push eax
call fcn.0048780d
add esp, 0x14
test eax, eax
jle 0x477355
xor eax, eax
mov word [ebp - 6], ax
call fcn.0047cc10
cmp dword [eax + 0x14], 8
jb 0x4771b7
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryW]
test eax, eax
je 0x477355
xorps xmm0, xmm0
mov dword [ebp - 0x1ac], 0
xor esi, esi
movq qword [ebp - 0x1a8], xmm0
push ebx
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x1a0], esi
call fcn.0044d690
mov ebx, dword [sym.imp.KERNEL32.DLL_LocalFree]
cmp eax, 3
jl 0x477252
lea eax, [ebp - 0x19c]
push eax
call fcn.00477710
add esp, 4
lea ecx, [ebp - 0x1a0]
push eax
call fcn.00476980
mov eax, dword [ebp - 0x19c]
test eax, eax
je 0x477226
push eax
call ebx
mov esi, dword [ebp - 0x1a0]
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x1ac], 0xc
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x18c], eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040409d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x476d80
push 0
push 0
push dword [ebp - 0x18c]
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x184]
call fcn.004ab490
lea ecx, [ebp - 0xb4]
call fcn.004040f3
lea ecx, [ebp - 0x184]
call fcn.004ac360
test al, al
jne 0x4772f1
lea ecx, [ebp - 0x184]
call fcn.004ab6b0
test esi, esi
je 0x4772bc
push esi
call ebx
lea ecx, [ebp - 0x188]
call fcn.00476b50
lea ecx, [ebp - 0x198]
call fcn.00476c00
lea ecx, [ebp - 0x1dc]
call fcn.0043fd90
pop ebx
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00486d53
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.KERNEL32.DLL_SetEvent]
lea ecx, [ebp - 0x188]
call fcn.00476b50
call fcn.0047e060
mov ecx, eax
call fcn.0047e2b0
lea ecx, [ebp - 0x184]
call fcn.004ab6b0
test esi, esi
je 0x477321
push esi
call ebx
lea ecx, [ebp - 0x188]
call fcn.00476b50
lea ecx, [ebp - 0x198]
call fcn.00476c00
lea ecx, [ebp - 0x1dc]
call fcn.0043fd90
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00486d53
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x188]
call fcn.00476b50
lea ecx, [ebp - 0x198]
call fcn.00476c00
lea ecx, [ebp - 0x1dc]
call fcn.0043fd90
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
xor ecx, ebp
pop esi
call fcn.00486d53
mov esp, ebp
pop ebp
ret