Function at 0x42b530
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x433fb0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x442b44]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov word [esp + 0x14], bx
call fcn.00403624
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x42b57c
push 0x80004005
call fcn.00402ac2
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x34]
cmp edx, ebx
mov dword [esp + 0x28], ebx
je 0x42b5d6
mov eax, edx
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x42b5a0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00402b7e
mov edi, dword [esp + 0x18]
push edi
call fcn.0042b2a0
add esp, 4
cmp eax, dword [esp + 0x38]
setb al
cmp al, bl
je 0x42b6e7
mov ebp, dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebx
push ebx
call ebp
mov esi, eax
cmp esi, ebx
jne 0x42b630
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00404430
lea eax, [edi - 0x10]
mov dword [esp + 0x28], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b61a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x42b64f
push esi
lea ecx, [esp + 0x1c]
call fcn.00402c9f
mov edi, dword [esp + 0x18]
push edi
push esi
call ebp
cmp edi, ebx
jne 0x42b65b
xor eax, eax
jmp 0x42b671
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x42b660
sub eax, edx
sar eax, 1
js 0x42b6dd
cmp eax, dword [edi - 8]
jg 0x42b6dd
mov dword [edi - 0xc], eax
push edi
mov word [edi + eax*2], bx
call fcn.0042b2a0
mov esi, dword [esp + 0x3c]
add esp, 4
cmp eax, esi
jae 0x42b6e7
lea ecx, [esp + 0x18]
push ecx
call fcn.0042b4c0
mov edi, dword [esp + 0x1c]
add esp, 4
test al, al
je 0x42b6b0
push edi
call fcn.0042b2a0
add esp, 4
cmp eax, esi
jae 0x42b6e7
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call fcn.00404430
lea eax, [edi - 0x10]
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x42b60e
push 0x80070057
call fcn.00402ac2
call fcn.00403624
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x42b701
push 0x80004005
call fcn.00402ac2
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x1c], esi
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
mov byte [esp + 0x28], 1
jge 0x42b73c
push 0x104
lea ecx, [esp + 0x20]
call fcn.00402c9f
mov esi, dword [esp + 0x1c]
push esi
push ebx
push 0x43adfc
push edi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x42b7b8
mov ebp, dword [esp + 0x30]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.00404430
lea eax, [esi - 0x10]
mov byte [esp + 0x28], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b77e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b7a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebp
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp esi, ebx
jne 0x42b7c0
xor eax, eax
jmp 0x42b7da
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x42b7c5
sub eax, edx
sar eax, 1
js 0x42b6dd
cmp eax, dword [esi - 8]
jg 0x42b6dd
mov dword [esi - 0xc], eax
mov word [esi + eax*2], bx
add esi, 0xfffffff0
push esi
call fcn.00402c0a
mov ebp, dword [esp + 0x34]
add eax, 0x10
add esp, 4
mov dword [ebp], eax
mov byte [esp + 0x28], bl
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b77e
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x42b77e