Function at 0x41f5c0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44ace8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
push esi
push edi
xor edx, edx
or eax, 0xffffffff
xor ebx, ebx
xor edi, edi
xor esi, esi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 4], esi
cmp byte [ecx + 0x28], 0
jne 0x41f8e5
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x28]
test eax, eax
je 0x41f641
test edx, edx
je 0x41f641
lea ecx, [ebp - 0x48]
push ecx
push 0
push edx
push eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0x64
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41f653
test ecx, ecx
je 0x41f65b
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push 0x64
push 0
push 0
call ecx
test eax, eax
je 0x41f8ee
cmp dword [ebp + 0x14], 0
jne 0x41f667
cmp dword [ebp + 0x18], 0
je 0x41f68d
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x41f9ad
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov ebx, eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x41f9ad
js 0x41f9a1
push ebx
call fcn.00431a3c
mov ecx, eax
xor eax, eax
add esp, 4
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
test ebx, ebx
jle 0x41f88b
mov edx, dword [ebp - 0x24]
sub edx, eax
lea ebx, [eax + ecx]
cmp edx, 0x1000
mov eax, 0x1000
cmovg edx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f877
mov eax, dword [ecx]
push edx
push ebx
call dword [eax + 0x28]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x41f877
mov eax, dword [ebp + 0x14]
add dword [ebp - 0x2c], ecx
add dword [ebp - 0x14], ecx
test eax, eax
je 0x41f710
push 0
lea edx, [ebp - 0x3c]
push edx
push ecx
push ebx
push eax
mov dword [ebp - 0x3c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x41f87e
jmp 0x41f821
cmp dword [ebp + 0x18], 0
je 0x41f824
push 8
call fcn.00431c77
add esp, 4
mov dword [ebp - 0x20], eax
push dword [ebp - 0x1c]
call fcn.00431a3c
mov ecx, dword [ebp - 0x20]
add esp, 4
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
push eax
mov dword [ecx + 4], eax
push ebx
push dword [ecx]
call fcn.00434e70
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x20]
add esp, 0xc
cmp eax, edi
jae 0x41f7be
cmp ecx, eax
ja 0x41f7be
mov ebx, eax
sub ebx, ecx
sar ebx, 2
cmp edi, esi
jne 0x41f7b5
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x41f7b5
sub edi, ecx
sar edi, 2
mov eax, 0x3fffffff
sub eax, edi
cmp eax, 1
jb 0x41f997
sub esi, ecx
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edi
cmp eax, esi
jae 0x41f79c
xor esi, esi
jmp 0x41f79e
add esi, ecx
cmp esi, edi
cmovb esi, edi
push esi
lea ecx, [ebp - 0x54]
call fcn.00401ba0
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
test edi, edi
je 0x41f81b
mov eax, dword [ecx + ebx*4]
jmp 0x41f819
cmp edi, esi
jne 0x41f812
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x41f812
sub edi, ecx
sar edi, 2
mov eax, 0x3fffffff
sub eax, edi
cmp eax, 1
jb 0x41f997
sub esi, ecx
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edi
cmp eax, esi
jae 0x41f7fc
xor esi, esi
jmp 0x41f7fe
add esi, ecx
cmp esi, edi
cmovb esi, edi
push esi
lea ecx, [ebp - 0x54]
call fcn.00401ba0
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
test edi, edi
je 0x41f81b
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
add edi, 4
mov dword [ebp - 0x50], edi
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
add dword [ebx + 0xc], ecx
add dword [eax + 0x38], ecx
cmp byte [eax + 0x28], 0
je 0x41f862
mov eax, dword [eax + 4]
test eax, eax
je 0x41f862
push 0
push 0
push 0x18
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp + 0xc]
push 0x14
push ebx
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0x1c]
add dword [ebx + 8], ecx
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
cmp eax, ebx
jge 0x41f88b
jmp 0x41f6a8
mov dword [ebp - 0x30], 1
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0xffffffff
push ecx
call fcn.00431e88
add esp, 4
cmp dword [ebp - 0x30], 0
jne 0x41f8f5
cmp dword [ebp - 0x2c], ebx
jne 0x41f8f5
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41f9a1
mov eax, dword [ecx]
push 2
lea edx, [ebp - 0x34]
push edx
call dword [eax + 0x28]
test eax, eax
jg 0x41f8d2
mov eax, 0xd0a
cmp word [ebp - 0x34], ax
jne 0x41f9a1
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x28], 0
je 0x41f612
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x18], 0xfffffffe
jmp 0x41f8fb
mov dword [ebp - 0x18], 0xfffffffe
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x41f974
test edx, edx
je 0x41f974
mov eax, dword [esi]
push edx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov ecx, eax
mov dword [ebp + 0x28], ecx
test ecx, ecx
je 0x41f974
mov edx, dword [ebp - 0x54]
sub edi, edx
xor eax, eax
sar edi, 2
xor ebx, ebx
mov dword [ebp + 8], eax
test edi, edi
je 0x41f971
nop
mov esi, dword [edx + ebx*4]
test esi, esi
je 0x41f96c
push dword [esi + 4]
add eax, ecx
push dword [esi]
push eax
call fcn.00434e70
mov eax, dword [ebp + 8]
add eax, dword [esi + 4]
add esp, 0xc
push dword [esi]
mov dword [ebp + 8], eax
call fcn.00431e88
add esp, 4
push esi
call fcn.00431c63
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp - 0x54]
add esp, 4
inc ebx
cmp ebx, edi
jb 0x41f930
mov ebx, dword [ebp - 0x54]
test ebx, ebx
je 0x41f981
push ebx
call fcn.00431c63
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
push str.vector_T__too_long
call fcn.00431b36
mov dword [ebp - 0x18], 0xffffffff
jmp 0x41f8f5
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x28], 0
jne 0x41f9cf
push dword [ebp + 0x30]
mov eax, dword [ebp - 0x14]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
push eax
call fcn.0041e7e0
mov dword [ebp - 0x18], 2
jmp 0x41f8f5