Function at 0x42fc20
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x16c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea esi, [esp + 0x48]
mov dword [esp + 0x40], 0
mov edi, eax
mov dword [esp + 0x3c], 0xc
mov dword [esp + 0x44], 1
mov dword [esp + 4], esi
mov dword [esp], 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
sub esp, 8
test eax, eax
je 0x42fe14
cmp eax, 0x104
jg 0x42fe14
mov ebx, esi
mov edx, dword [ebx]
add ebx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x42fc77
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [ebx + 2]
cmove ebx, edx
mov ecx, eax
add cl, al
sbb ebx, 3
sub ebx, esi
cmp ebx, 0x104
ja 0x42fe14
add ebx, esi
mov eax, 0x6770
shl edi, 0x10
mov dword [ebx], 0x756e675f
mov word [ebx + 4], ax
mov byte [ebx + 6], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebx + 6], 0x5c
sub esp, 8
mov dword [esp + 0x2c], 0xa
mov dword [esp + 0x28], edi
lea edi, [ebx + 0xf]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor eax, dword [esp + 0x28]
mov ecx, eax
shr ecx, 0x1c
cmp ecx, 0xa
lea ebp, [ecx + 0x37]
lea edx, [ecx + 0x30]
cmovae edx, ebp
mov byte [ebx + 7], dl
mov edx, eax
shl edx, 4
shr edx, 0x1c
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
mov edx, eax
cmovae ecx, ebp
shl edx, 8
shr edx, 0x1c
mov byte [ebx + 8], cl
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
mov edx, eax
cmovae ecx, ebp
shl edx, 0xc
shr edx, 0x1c
mov byte [ebx + 9], cl
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
mov edx, eax
cmovae ecx, ebp
shl edx, 0x10
shr edx, 0x1c
mov byte [ebx + 0xa], cl
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
mov edx, eax
cmovae ecx, ebp
shl edx, 0x14
shr edx, 0x1c
mov byte [ebx + 0xb], cl
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
mov edx, eax
cmovae ecx, ebp
shl edx, 0x18
shr edx, 0x1c
mov byte [ebx + 0xc], cl
cmp edx, 0xa
lea ebp, [edx + 0x37]
lea ecx, [edx + 0x30]
cmovae ecx, ebp
and eax, 0xf
cmp eax, 0xa
lea edx, [eax + 0x30]
mov byte [ebx + 0xd], cl
lea ecx, [eax + 0x37]
lea eax, [esp + 0x3c]
cmovae edx, ecx
mov byte [ebx + 0xe], dl
mov dword [edi], 0x706d742e
mov byte [edi + 4], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x4000100
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
sub esp, 0x1c
cmp eax, 0xffffffff
jne 0x42fe2f
mov dword [esp], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
sub dword [esp + 0x2c], 1
jne 0x42fcf4
mov dword [esp], 2
xor ebx, ebx
call sub.libgpg_error_0.dll_gpg_err_set_errno
add esp, 0x16c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, eax
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__open_osfhandle]
mov esi, eax
cmp eax, 0xffffffff
je 0x42fe79
mov dword [esp + 4], 0x455fa2
mov dword [esp], eax
call sub.msvcrt.dll__fdopen
mov ebx, eax
test eax, eax
jne 0x42fe22
call dword [sym.imp.msvcrt.dll__errno]
mov edi, dword [eax]
mov dword [esp], esi
call sub.msvcrt.dll__close
mov dword [esp], edi
call sub.libgpg_error_0.dll_gpg_err_set_errno
jmp 0x42fe22
mov dword [esp], ebp
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
jmp 0x42fe22