Function at 0x27598c30
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x275ac3b1
mov eax, dword fs:[0]
push eax
sub esp, 0x62c
mov eax, dword [0x275ba2ec]
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
xor edi, edi
push edi
push 0x2752ed48
lea eax, [ebp - 0x630]
push eax
push 0x2752ece0
mov esi, ecx
lea ecx, [ebp - 0x62c]
push 2
push ecx
mov dword [ebp - 0x630], edi
call fcn.2753a320
add esp, 0x18
mov edx, dword [0x275bc8c4]
mov eax, dword [edx + 0xc]
mov ecx, 0x275bc8c4
mov dword [ebp - 4], edi
call eax
add eax, 0x10
mov dword [ebp - 0x634], eax
mov edx, dword [0x275bc8c4]
mov eax, dword [edx + 0xc]
mov ecx, 0x275bc8c4
mov byte [ebp - 4], 1
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x638], ebx
mov ecx, dword [esi + 0x6c]
cmp ecx, edi
mov byte [ebp - 4], 2
jne 0x27598cdf
mov eax, 0x80048008
mov dword [ebp - 0x630], eax
jmp 0x27598f06
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
call eax
cmp eax, edi
jne 0x27598cee
xor ecx, ecx
jmp 0x27598d02
mov ecx, eax
lea ebx, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x27598cf3
sub ecx, ebx
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x638]
call fcn.27538e90
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0xa
lea ecx, [ebp - 0x110]
push ecx
push eax
call fcn.275a2cc5
lea eax, [ebp - 0x110]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x27598d30
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x110]
push edx
lea ecx, [ebp - 0x638]
call fcn.2753eb70
push 1
push 0x2752ecdc
lea ecx, [ebp - 0x638]
call fcn.2753eb70
mov ebx, dword [ebp - 0x638]
mov eax, dword [esi + 8]
push ebx
push eax
call fcn.275a2cea
mov edi, eax
add esp, 8
test edi, edi
je 0x27598f7e
cmp word [edi], 0x2e
jne 0x27598e36
cmp word [edi + 2], 0x5c
jne 0x27598e36
push 0x206
lea eax, [ebp - 0x316]
push 0
push eax
mov word [ebp - 0x318], 0
call fcn.2757fdd0
add esp, 0xc
lea ecx, [ebp - 0x318]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x27598dec
lea edx, [edi + 4]
push edx
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x520]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x520]
push edx
jmp 0x27598e37
call fcn.27595010
test al, al
je 0x27598e26
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x27598e05
call esi
jmp 0x27598e11
call esi
and eax, 0xffff
or eax, 0x80070000
push eax
push 0x2752ec88
push 0x2752ec20
push 0
call fcn.27595fd0
add esp, 0x10
mov eax, 0x80048269
mov dword [ebp - 0x630], eax
jmp 0x27598f06
push edi
lea ecx, [ebp - 0x634]
call fcn.27539170
push edi
call fcn.2757eb0d
add esp, 4
call fcn.27595010
test al, al
mov edi, dword [ebp - 0x634]
je 0x27598e6f
push edi
push 0x2752ebe0
push 0x2752eb78
push 3
call fcn.27595fd0
add esp, 0x10
mov eax, dword [esi + 0x18]
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x27598ecc
call fcn.27595010
test al, al
je 0x27598ea2
mov eax, dword [esi + 0x18]
push edi
push eax
push 0x2752eb00
push 0x2752ea98
push 0
call fcn.27595fd0
add esp, 0x14
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x27598eb8
call esi
mov dword [ebp - 0x630], eax
jmp 0x27598f06
call esi
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x630], eax
jmp 0x27598f06
lea edx, [ebp - 0x634]
lea ecx, [esi + 0x24]
push edx
call fcn.2753d5b0
push 0x2e
lea ecx, [ebp - 0x634]
call fcn.27596b40
mov eax, dword [ebp - 0x634]
push 3
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [esi + 0x38], eax
je 0x27598ea2
mov eax, dword [ebp - 0x630]
mov esi, eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x27598f28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x27598f4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x62c]
mov dword [ebp - 4], 0xffffffff
call fcn.2753a430
mov eax, esi
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.2757f388
mov esp, ebp
pop ebp
ret
call fcn.27595010
test al, al
je 0x27598f9b
push 0x2752ea48
push 0x2752e9e0
push 0
call fcn.27595fd0
add esp, 0xc
mov eax, 0x80048269
mov dword [ebp - 0x630], eax
jmp 0x27598f06