Function at 0x515c40
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56561f
mov eax, dword fs:[0]
push eax
mov eax, 0x1044
mov dword fs:[0], esp
call fcn.00532fd0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], edi
mov byte [ebp - 0xd], 0
lea esi, [edi + 0x28]
push esi
mov dword [ebp - 0x40], esi
call fcn.0051ebc6
add esp, 4
test eax, eax
jne 0x5161e9
mov dword [ebp - 4], eax
mov ecx, dword [edi + 0x60]
mov eax, dword [edi + 0x5c]
dec ecx
and ecx, dword [edi + 0x64]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi]
sub ecx, 0x10
call fcn.00425550
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 1
or ebx, 0xffffffff
mov edi, dword [ebp - 0x28]
mov ecx, dword [edi + 0x60]
mov eax, dword [edi + 0x5c]
dec ecx
and ecx, dword [edi + 0x64]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax]
mov eax, ebx
sub edx, 0x10
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x515ce8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add dword [edi + 0x68], 0xffffffff
jne 0x515cf7
mov dword [edi + 0x64], 0
jmp 0x515cfa
inc dword [edi + 0x64]
cmp dword [ebp - 0x48], 0
je 0x5161b4
mov eax, dword [ebp - 0x4c]
cmp dword [eax - 4], 1
jle 0x515d1b
push dword [eax - 0xc]
lea ecx, [ebp - 0x4c]
call fcn.004251f0
mov eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x1050]
push 0x58c590
push eax
call fcn.004249d0
lea ecx, [ebp - 0x1050]
add esp, 0xc
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x515d40
push dword [edi + 0x24]
lea eax, [ebp - 0x44]
sub ecx, edx
push eax
push ecx
lea eax, [ebp - 0x1050]
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
setne byte [ebp - 0xd]
test eax, eax
jne 0x5161b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x18
mov dword [ebp - 0x50], eax
mov ecx, esp
push 7
push str.product
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x28]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 2
push 0x12
push str.pipe_sending_error
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x3c]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 3
push 0x14
push str.p_name_wseCode_lu
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x38]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 4
push 7
push str.unknown
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x34]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 6
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x5161ef
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 7
cmp dword [edi + 0x18], 0
jne 0x515e91
push ecx
mov esi, esp
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x1c]
mov dword [esi], eax
call fcn.00437b50
add esp, 4
mov byte [ebp - 4], 8
mov ecx, 1
mov edi, dword [eax]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], ecx
jmp 0x515eea
add edi, 8
cmp dword [edi + 0x14], 0x10
jb 0x515e9c
mov edi, dword [edi]
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x5161f9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push edi
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 9
call fcn.00425090
test al, al
jne 0x515ed3
push edi
lea ecx, [ebp - 0x14]
call fcn.00424860
mov dword [ebp - 4], 0xa
mov eax, 2
mov esi, dword [ebp - 0x14]
mov edi, esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
push ecx
mov ecx, dword [ebp - 0x38]
mov ebx, esp
mov dword [ebp - 0x24], ebx
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x2c]
mov dword [ebx], eax
call fcn.00437b50
push dword [ebp - 0x50]
mov dword [ebp - 4], 0xb
push edi
push dword [eax]
lea eax, [ebp - 0x30]
push eax
call fcn.0041a6d0
mov edx, dword [ebp - 0x2c]
or ebx, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x515f3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x18]
test cl, 2
je 0x515f66
and ecx, 0xfffffffd
add esi, 0xfffffff0
mov dword [ebp - 0x18], ecx
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x515f66
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], 7
test cl, 1
je 0x515f8c
mov edx, dword [ebp - 0x1c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x515f8c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x516203
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
push 0x57ece0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xc
call fcn.00425090
test al, al
jne 0x515fca
push 0
push 0x57ece0
lea ecx, [ebp - 0x20]
call fcn.00425360
mov byte [ebp - 4], 0xd
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x51620d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x57ece0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xe
call fcn.00425090
test al, al
jne 0x51600c
push 0
push 0x57ece0
lea ecx, [ebp - 0x14]
call fcn.00425360
mov byte [ebp - 4], 0xf
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x516217
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0x57ece0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x10
call fcn.00425090
test al, al
jne 0x51604e
push 0
push 0x57ece0
lea ecx, [ebp - 0x18]
call fcn.00425360
push ecx
mov byte [ebp - 4], 0x11
mov esi, esp
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x24], esi
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x2c]
mov dword [esi], eax
call fcn.00437b50
mov edi, eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], esi
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x1c]
mov dword [esi], eax
call fcn.00437b50
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x13
push ecx
lea ecx, [ebp - 0x14]
mov edx, edi
push ecx
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.004470d0
mov edx, dword [ebp - 0x1c]
add esp, 0x10
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5160c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5160e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5160fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x516115
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x51612f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x30]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x516149
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x34]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x516163
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x51617d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x3c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x516197
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5161b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x5161cc
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
push esi
call fcn.0051ebd7
mov ecx, dword [ebp - 0xc]
add esp, 4
mov al, byte [ebp - 0xd]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.0051ec4f
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
int3