Function at 0x486924
Capabilities:
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x660
mov eax, dword [0x48ec38]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, ecx
mov ecx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], ecx
mov dword [ebp - 0x630], esi
test edi, edi
jne 0x48696c
mov ebx, 0x80070057
push ebx
call fcn.004321e3
jmp 0x4871e8
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
add eax, 0x428
push 0
mov ecx, eax
mov dword [ebp - 0x65c], eax
call fcn.00487211
lea eax, [ebp - 0x630]
push eax
push 0
push 0x4056f4
push edi
call fcn.004314b7
mov ebx, eax
mov dword [ebp - 0x634], ebx
test ebx, ebx
jns 0x4869b8
push ebx
call fcn.004321e3
mov esi, dword [ebp - 0x630]
jmp 0x4871e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x648]
mov esi, eax
push 0x4057f0
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push edi
push esi
push 0x405708
push 0x405778
push 0x96
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
mov esi, dword [ebp - 0x630]
mov edi, eax
push esi
push 0x40582c
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0x405708
push 0x405778
push 0x97
xor ebx, ebx
push ebx
push 0x41216c
push ebx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call fcn.00437da1
mov dword [ebp - 0x660], eax
test eax, eax
jne 0x486acf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x634], eax
test eax, eax
jle 0x486a7a
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x634], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push 0x405868
push 0x2800000
mov edi, eax
call fcn.0045ab3f
pop ecx
pop ecx
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x405708
push 0x405778
push 0xa1
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
mov ebx, dword [ebp - 0x634]
test ebx, ebx
jns 0x4871e8
jmp 0x486961
push dword [ebp - 0x648]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x486b6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x634], eax
test eax, eax
jle 0x486b01
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x634], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
mov edi, eax
mov eax, dword [ebp - 0x634]
push eax
push dword [ebp - 0x648]
push 0x4058a8
push 0x2800000
call fcn.0045ab3f
add esp, 0x10
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x405708
push 0x405778
push 0xa8
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
mov ebx, dword [ebp - 0x634]
test ebx, ebx
jns 0x4871dc
push ebx
call fcn.004321e3
jmp 0x4871dc
push ebx
push ebx
push ebx
call fcn.004889c0
mov dword [ebp - 0x658], eax
test eax, eax
jne 0x486bd4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x634], eax
test eax, eax
jle 0x486b9a
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x634], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push 0x405900
push 0x2800000
mov edi, eax
call fcn.0045ab3f
pop ecx
pop ecx
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x405708
push 0x405778
push 0xb2
jmp 0x486b44
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x658]
mov edi, eax
push 0x405950
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0x405708
push 0x405778
push 0xb6
push 0
push 0x41216c
push 0
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
xor eax, eax
mov dword [ebp - 0x640], eax
and dword [ebp - 0x630], 0
xor ecx, ecx
and dword [ebp - 0x650], ecx
and dword [ebp - 0x63c], 0
mov word [ebp - 0x20c], cx
lea ecx, [ebp - 0x20c]
push 0x104
push ecx
push eax
call fcn.004889c0
mov edi, eax
mov dword [ebp - 0x644], edi
test edi, edi
jne 0x486cb2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x640]
mov edi, eax
push 0x405988
push 0x2000000
call fcn.0045ab3f
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0x405708
push 0x405778
push 0xc6
push 0
push 0x41216c
push 0
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
jmp 0x487180
cmp word [ebp - 0x20c], 0
jne 0x486cfa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x640]
mov edi, eax
push 0x4059e0
push 0x2000000
call fcn.0045ab3f
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0x405708
push 0x405778
push 0xcc
jmp 0x486c9e
mov ebx, dword [ebp - 0x64c]
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x20c]
mov ecx, ebx
push eax
push dword [ebp - 0x648]
call fcn.004866db
mov dword [ebp - 0x638], eax
test eax, eax
jns 0x486d6c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x638]
mov edi, eax
push dword [ebp - 0x640]
push 0x405a30
push 0x2000000
call fcn.0045ab3f
add esp, 0x10
push 0
push 0
push ebx
push edi
push 0x405708
push 0x405778
push 0xd3
jmp 0x486c9e
lea eax, [ebp - 0x20c]
mov ecx, ebx
push eax
call fcn.00487301
test eax, eax
jns 0x486dd7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.WDSCORE.dll_CurrentIP
mov edi, eax
lea eax, [ebp - 0x20c]
push eax
push 0x405a98
push 0x3000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push ebx
push edi
push 0x405708
push 0x405778
push 0xda
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
and dword [ebp - 0x638], 0
mov edi, dword [ebp - 0x644]
jmp 0x486de1
mov dword [ebp - 0x638], 1
mov eax, edi
shr edi, 1
and eax, 1
and edi, 1
mov dword [ebp - 0x654], eax
lea eax, [ebp - 0x630]
push eax
push 0
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x644], edi
push eax
push esi
call fcn.004314b7
mov ebx, eax
test ebx, ebx
js 0x4871c2
mov edi, dword [ebp - 0x630]
lea eax, [ebp - 0x63c]
push eax
push 0
push 0x405ae4
push edi
call fcn.004314b7
mov ebx, eax
mov dword [ebp - 0x634], ebx
test ebx, ebx
js 0x4871a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x640]
mov ebx, eax
push 0x405af4
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push pe_nt_image_headers32
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
mov ebx, eax
lea eax, [ebp - 0x20c]
push eax
push 0x405b30
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push 0xe9
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x63c]
mov ebx, eax
push 0x405b6c
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push 0xea
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x654]
mov ebx, eax
push 0x405ba8
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push 0xeb
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x644]
mov ebx, eax
push 0x405be4
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push 0xec
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x630], eax
call sub.WDSCORE.dll_CurrentIP
push dword [ebp - 0x650]
mov ebx, eax
push 0x405c20
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x630]
push ebx
push 0x405708
push 0x405778
push 0xed
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
mov ebx, dword [ebp - 0x638]
lea eax, [ebp - 0x20c]
push ebx
push dword [ebp - 0x650]
lea ecx, [ebp - 0x62c]
push dword [ebp - 0x644]
push dword [ebp - 0x654]
push dword [ebp - 0x63c]
push eax
call fcn.0048653b
lea eax, [ebp - 0x62c]
push eax
mov eax, dword [ebp - 0x65c]
mov ecx, eax
push dword [eax + 4]
call fcn.0048685e
cmp dword [ebp - 0x654], 0
je 0x487162
mov ecx, dword [ebp - 0x64c]
test ebx, ebx
je 0x4870f4
cmp dword [ecx], 0
jge 0x4870f4
mov eax, dword [ecx + 0x42c]
dec eax
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x638], eax
call sub.WDSCORE.dll_CurrentIP
mov ebx, eax
lea eax, [ebp - 0x62c]
push eax
push 0x405c5c
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push dword [ebp - 0x638]
push ebx
push 0x405708
push 0x405778
push 0xff
push ecx
push 0x41216c
push ecx
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
mov ecx, dword [ebp - 0x64c]
cmp dword [ebp - 0x644], 0
je 0x487162
cmp dword [ecx + 4], 0
jge 0x487162
mov eax, dword [ecx + 0x42c]
dec eax
mov dword [ecx + 4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x638], eax
call sub.WDSCORE.dll_CurrentIP
mov ebx, eax
lea eax, [ebp - 0x62c]
push eax
push 0x405ca0
push 0x4000000
call fcn.0045ab3f
add esp, 0xc
push 0
push 0
push dword [ebp - 0x638]
push ebx
push 0x405708
push 0x405778
push 0x105
push 0
push 0x41216c
push 0
push eax
call sub.WDSCORE.dll_WdsSetupLogMessageW
cmp dword [ebp - 0x63c], 0
je 0x487176
push dword [ebp - 0x63c]
call fcn.0043220c
test edi, edi
je 0x487180
push edi
call fcn.0043220c
mov eax, dword [ebp - 0x640]
inc eax
mov dword [ebp - 0x640], eax
cmp eax, dword [ebp - 0x658]
jb 0x486c27
mov ebx, dword [ebp - 0x634]
jmp 0x4871dc
push ebx
call fcn.004321e3
cmp dword [ebp - 0x63c], 0
je 0x4871bb
push dword [ebp - 0x63c]
call fcn.0043220c
test edi, edi
je 0x4871dc
push edi
jmp 0x4871d7
push ebx
call fcn.004321e3
cmp dword [ebp - 0x630], 0
je 0x4871dc
push dword [ebp - 0x630]
call fcn.0043220c
push dword [ebp - 0x660]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ebx
call fcn.00432150
test esi, esi
je 0x4871f8
push esi
call fcn.0043220c
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047d650
leave
ret 8