Function at 0x427a20
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x46f06c]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x38], 0
je 0x427c06
cmp byte [edi + 0x3d], 0
je 0x427c06
mov eax, dword [edi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
jne 0x427a6d
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0043223c
mov esp, ebp
pop ebp
ret
mov ecx, 0xf
mov byte [esp + 0x14], 0
xorps xmm0, xmm0
mov dword [esp + 0x28], ecx
cmp ecx, 0x10
movq qword [esp + 0x14], xmm0
lea eax, [esp + 0x14]
mov dword [esp + 0x24], 8
cmovae eax, dword [esp + 0x14]
mov byte [eax + 8], 0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov ebx, dword [edi + 0x38]
lea ecx, [esp + 0x14]
cmp edx, 0x10
lea esi, [esp + 0x14]
cmovae ecx, eax
cmovae esi, eax
mov edx, dword [ebx]
cmp edx, vtable.std::codecvt_char__char__struct__Mbstatet_.0
mov edx, dword [esp + 0x28]
jne 0x427c1a
mov dword [esp + 0xc], esi
xor ecx, ecx
sub ecx, 0
je 0x427aea
sub ecx, 1
je 0x427aee
sub ecx, 2
je 0x427bbb
xor bl, bl
jmp 0x427bbd
mov byte [edi + 0x3d], 0
cmp edx, 0x10
lea ecx, [esp + 0x14]
cmovae ecx, eax
sub esi, ecx
je 0x427b21
push dword [edi + 0x4c]
cmp edx, 0x10
lea ecx, [esp + 0x18]
push esi
cmovae ecx, eax
push 1
push ecx
call fcn.0043f704
mov edx, dword [esp + 0x38]
add esp, 0x10
cmp esi, eax
mov eax, dword [esp + 0x14]
jne 0x427ae3
cmp byte [edi + 0x3d], 0
je 0x427bbb
test esi, esi
jne 0x427aa4
mov ebx, dword [esp + 0x24]
or ecx, 0xffffffff
sub ecx, ebx
cmp ecx, 8
jbe 0x427c45
lea esi, [ebx + 8]
cmp esi, 0xfffffffe
ja 0x427c45
cmp edx, esi
jae 0x427ba1
push ebx
push esi
lea ecx, [esp + 0x1c]
call fcn.00401e39
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
test esi, esi
je 0x427aa4
cmp edx, 0x10
lea ecx, [esp + 0x14]
xorps xmm0, xmm0
cmovae ecx, eax
mov eax, dword [esp + 0x24]
movq qword [ecx + eax], xmm0
lea eax, [esp + 0x14]
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x24], esi
cmovae eax, dword [esp + 0x14]
mov byte [eax + esi], 0
jmp 0x427a9c
test esi, esi
jne 0x427b70
cmp edx, 0x10
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x14]
cmovae ecx, eax
mov byte [ecx], 0
jmp 0x427a9c
mov bl, 1
cmp edx, 0x10
jb 0x427bf2
lea ecx, [edx + 1]
cmp ecx, 0x1000
jb 0x427be9
test byte [esp + 0x14], 0x1f
jne 0x427c4f
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x427c54
sub eax, ecx
cmp eax, 4
jb 0x427c59
cmp eax, 0x23
ja 0x427c5e
mov eax, ecx
push eax
call fcn.00432237
add esp, 4
mov al, bl
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0043223c
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x2c]
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0043223c
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xc]
push eax
mov eax, dword [esp + 0x28]
add eax, ecx
mov ecx, ebx
push eax
push esi
lea eax, [edi + 0x40]
push eax
mov eax, dword [ebx]
call dword [eax + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
jmp 0x427ad0
push str.string_too_long
call fcn.00430c4c
call fcn.004377c0
call fcn.004377c0
call fcn.004377c0
call fcn.004377c0
int3