Function at 0x401f0c
Capabilities:
Get common file path
Read pipe
Write pipe

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ebx
push esi
lea esi, [eax + ecx]
xor esi, 0x112
add edx, 0xffffff16
or esi, edx
push edi
lea edx, [ecx - 0x3f]
mov ebx, eax
xor ebx, dword [ebp + 0xc]
lea edi, [esi + 0x67]
and edi, edx
and edi, 0x3e7
cmp si, 0x30
jae 0x401f50
mov ax, word [ebp + 8]
jmp 0x4021da
cmp si, 0xdfcd
jne 0x401fb4
mov eax, edi
xor edx, edx
mov ecx, 0x338
div ecx
xor edx, edx
mov ecx, 0x291
div ecx
movzx eax, bx
add ecx, 0x49
imul edx, dword [ebp + 0x18]
and edx, 0x1690db9
xor edx, dword [ebp + 0x10]
sub edx, 0xdc37
push edx
xor edx, edx
div ecx
xor edx, edx
mov ecx, 0x2cd
add eax, 0xfed
push eax
movzx eax, bx
div ecx
movzx eax, bx
and edx, eax
add edx, 0x341dc
push edx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 8], eax
jmp 0x40200f
cmp si, 0x51
jne 0x401fd1
xor edx, edx
add ecx, 0x204
div dword [ebp + 8]
mov esi, edx
add esi, 0x4a8
or esi, ecx
jmp 0x40200f
cmp si, 0x22
jae 0x401fe4
and esi, 0x101
or si, 0x214
jmp 0x40200f
cmp si, 0x5b
jae 0x401ff5
add esi, 0x58
and esi, 0x258
jmp 0x40200f
cmp si, 0x22
ja 0x40200f
mov eax, 0x110
xor edx, edx
div edi
mov edi, dword [ebp + 0xc]
sub edi, eax
add edi, 0x129
cmp bx, 0x44
jae 0x402037
mov eax, 0xa0
xor edx, edx
div dword [ebp + 8]
mov ecx, 0x19b
mov eax, edx
xor edx, edx
imul eax, eax, 0x72
div ecx
push edx
push edx
call dword [sym.imp.USER32.dll_RemovePropA]
jmp 0x402046
cmp bx, 0x3745
jne 0x402046
mov eax, 0x43fe46
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0x36
jae 0x402062
movzx ecx, bx
mov eax, 0x1a5
sub eax, ecx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp 0x4020bd
cmp eax, 5
jb 0x4020bd
cmp eax, 4
jne 0x402074
mov eax, dword [ebp + 0xc]
lea edi, [eax + 0x7a]
jmp 0x4020bd
cmp eax, 0x17
jne 0x402094
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
mov ebx, dword [ebp + 0x10]
mov eax, edi
mov ecx, 0x2bc
sub ebx, edx
xor edx, edx
div ecx
xor ebx, edx
jmp 0x4020bd
cmp eax, 0x5a
jbe 0x402121
cmp eax, 0x84
jne 0x4020bd
movzx ecx, si
mov eax, 0x151
xor edx, edx
div ecx
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 0xa8a]
mov dword [ebp - 4], eax
cmp bx, 0x5c
je 0x402189
cmp bx, 0x54
jae 0x4020ed
movzx eax, bx
xor edx, edx
mov ecx, 0x1bb
div dword [ebp + 0xc]
xor edx, edx
div ecx
and edx, esi
xor edx, 0x2ce
mov esi, edx
jmp 0x402189
cmp bx, 0x36
jne 0x40210d
imul edi, dword [ebp + 0x10]
mov eax, 0x6ba
sub eax, edi
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_TransactNamedPipe]
jmp 0x402189
cmp bx, 0x3745
jne 0x402150
mov eax, dword [ebp + 8]
cmp eax, 0x1c
jb 0x402189
cmp eax, 0x20
jae 0x40212a
mov ax, word [ebp + 0x10]
jmp 0x4021da
cmp eax, 0x60
jbe 0x402189
cmp eax, 0x292a
jne 0x40213e
mov eax, dword [ebp - 4]
mov dword [ebp + 0x10], eax
jmp 0x402189
cmp eax, 7
jne 0x402189
xor esi, 0x36b5
or esi, edi
or esi, dword [ebp + 0xc]
jmp 0x402189
cmp bx, 5
ja 0x402175
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
sub esi, edi
and eax, 0x376
add esi, 0x19e
xor eax, 0x241
xor esi, dword [ebp + 0x18]
or esi, eax
jmp 0x402189
cmp bx, 0x20
jae 0x402189
mov eax, dword [ebp + 0x14]
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
cmp si, 0x12
jae 0x4021c2
movzx eax, bx
imul eax, eax, 0x82
movzx ecx, si
xor edx, edx
div ecx
mov eax, dword [ebp + 8]
mov ecx, edx
xor edx, edx
add ecx, 3
or ecx, eax
imul eax, eax, 0x32
and ecx, esi
mov esi, 0x1ce
div esi
xor ecx, eax
or cx, 0x35d
mov esi, ecx
jmp 0x4021d7
cmp si, 0x21
jb 0x4021d7
cmp si, 0xdfcd
jne 0x4021d7
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
mov ax, si
pop edi
pop esi
pop ebx
leave
ret