Function at 0x50c720
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5673bd
mov eax, dword fs:[0]
push eax
mov eax, 0x1024
call fcn.00512250
mov eax, dword [0x5df7e4]
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 dword [ebp - 4], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1030], edi
mov dword [ebp - 0x1014], 0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
call fcn.004b98f0
mov ecx, eax
test ecx, ecx
je 0x50ca17
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 1
lea eax, [ebp - 0x1010]
push eax
push str._sAlibabawwbizsrv
push edi
mov dword [ebp - 0x1014], 2
call fcn.004c0530
add esp, 0xc
push dword [edi]
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov eax, 2
mov dword [ebp - 0x1014], eax
and eax, 0xfffffffd
mov dword [ebp - 0x1014], eax
mov dword [ebp - 4], 0
mov eax, dword [edi]
mov dword [ebp - 0x1014], 1
cmp dword [eax - 0xc], 0
jle 0x50c9f9
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.004b98f0
mov ecx, eax
test ecx, ecx
je 0x50ca21
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1018], eax
mov dword [ebp - 4], 3
lea eax, [ebp - 0x810]
test eax, 0xffff0000
jne 0x50c858
movzx eax, ax
lea ecx, [ebp - 0x1018]
push eax
call fcn.004bb960
jmp 0x50c883
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x50c861
sub ecx, edx
lea eax, [ebp - 0x810]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1018]
call fcn.004bbc70
mov dword [ebp - 4], 4
mov esi, dword [ebp - 0x1018]
push 0x5c
push esi
call fcn.0052a53d
mov ecx, eax
add esp, 8
or eax, 0xffffffff
test ecx, ecx
jne 0x50c8a8
or ecx, eax
jmp 0x50c8b2
sub ecx, esi
sar ecx, 1
je 0x50c9dd
mov byte [ebp - 4], 5
mov eax, dword [esi - 0xc]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0x1018]
call fcn.004c1160
mov dword [ebp - 0x1014], 5
mov ecx, dword [eax]
mov edx, ecx
mov eax, dword [edi]
sub edx, eax
sar edx, 1
mov dword [ebp - 0x1028], ecx
mov dword [ebp - 0x1024], edx
mov ebx, dword [eax - 0xc]
mov eax, dword [ecx - 0xc]
mov dword [ebp - 0x1020], ebx
test eax, eax
js 0x50ca2b
test ecx, ecx
jne 0x50c911
xor edx, edx
mov dword [ebp - 0x101c], edx
jmp 0x50c923
push eax
push ecx
call fcn.00534aec
add esp, 8
mov dword [ebp - 0x101c], eax
mov edx, eax
mov eax, accept
sub eax, edx
cmp eax, ebx
jl 0x50ca35
add ebx, edx
js 0x50ca3f
mov eax, dword [edi]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, ebx
or eax, ecx
jge 0x50c95b
push ebx
mov ecx, edi
call fcn.004bbb80
mov edx, dword [ebp - 0x101c]
mov ecx, dword [ebp - 0x1024]
mov eax, dword [edi]
cmp ecx, dword [ebp - 0x1020]
lea ecx, [eax + ecx*2]
jbe 0x50c974
mov ecx, dword [ebp - 0x1028]
lea eax, [edx + edx]
push eax
push ecx
mov ecx, dword [edi]
push eax
mov eax, dword [ebp - 0x1020]
lea eax, [ecx + eax*2]
push eax
call fcn.004d5b60
mov eax, dword [edi]
add esp, 0x10
cmp ebx, dword [eax - 8]
jg 0x50ca2b
mov dword [eax - 0xc], ebx
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + ebx*2], cx
mov eax, 5
mov dword [ebp - 0x1014], eax
and eax, 0xfffffffb
mov dword [ebp - 0x1014], eax
mov byte [ebp - 4], 4
or eax, 0xffffffff
mov edx, dword [ebp - 0x102c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x50c9da
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or eax, 0xffffffff
mov dword [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x50c9f9
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
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.005121be
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004b95c0
push 0x80004005
call fcn.004b95c0
push 0x80070057
call fcn.004b95c0
push 0x80070057
call fcn.004b95c0
push 0x80070057
call fcn.004b95c0
int3