Function at 0x419af0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], method.std::string.swap_std::string_
mov eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x28], method.std::string.swap_std::string_
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
test edi, edi
je 0x419ed8
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x44], eax
test byte [esi + 8], 2
jne 0x419e90
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], esi
mov dword [esp], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x3c], eax
call fcn.00451148
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x419f09
lea eax, [ebp - 0x28]
mov dword [ebp - 0x3c], eax
test byte [ebx + 8], 2
jne 0x419eb8
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00451148
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edi - 0xc]
mov dword [ebp - 0x40], ecx
cmp eax, dword [ecx - 0xc]
je 0x419ca8
call sub.cygwin1.dll___getreent
mov ecx, dword [ebp - 0x40]
mov dword [esp + 8], edi
mov dword [esp + 4], str.Graphemes:__s_vs.__s_n
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [esi]
mov byte [ebp - 0x40], 1
mov edx, dword [eax - 0xc]
test edx, edx
jne 0x419cd5
mov eax, dword [ebx]
mov eax, dword [eax - 0xc]
test eax, eax
jne 0x419f58
movzx eax, byte [esi + 8]
movzx edx, byte [ebx + 8]
xor edx, eax
test dl, 2
jne 0x419e40
and edx, 1
jne 0x419e00
movzx eax, byte [ebx + 7]
cmp byte [esi + 7], al
je 0x419dd0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.renditions_differ_n
call sub.cygwin1.dll_fwrite
mov byte [ebp - 0x40], 1
movzx eax, byte [esi + 8]
movzx edx, byte [ebx + 8]
xor edx, eax
and edx, 4
je 0x419c65
movzx ebx, byte [ebx + 8]
shr al, 2
mov esi, eax
shr bl, 2
and esi, 1
and ebx, 1
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], str.wrap:__d_vs.__d_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov byte [ebp - 0x40], 1
mov eax, dword [ebp - 0x28]
lea edx, [eax - 0xc]
cmp eax, method.std::string.swap_std::string_
jne 0x419fc0
mov eax, dword [ebp - 0x2c]
lea edx, [eax - 0xc]
cmp eax, method.std::string.swap_std::string_
jne 0x419f90
mov eax, dword [ebp - 0x1c]
sub eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
jne 0x41a016
movzx eax, byte [ebp - 0x40]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test eax, eax
je 0x419cc4
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
call sub.cygwin1.dll_memcmp
test eax, eax
jne 0x419b8a
mov eax, dword [esi]
mov byte [ebp - 0x40], 0
mov edx, dword [eax - 0xc]
test edx, edx
je 0x419bbe
mov dword [esp + 4], 0x479ab2
mov dword [esp], esi
call fcn.00451228
test eax, eax
je 0x419bbe
mov dword [esp + 4], 0x479a87
mov dword [esp], esi
call fcn.00451228
test eax, eax
je 0x419bbe
mov edx, dword [ebx]
mov eax, dword [esi]
mov edi, dword [edx - 0xc]
cmp dword [eax - 0xc], edi
je 0x419f30
lea eax, [ebp - 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00419900
mov eax, dword [ebp - 0x20]
sub esp, 4
mov dword [ebp - 0x4c], eax
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
lea eax, [ebp - 0x24]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x48], ecx
call fcn.00419900
mov edx, dword [ebp - 0x24]
sub esp, 4
mov dword [ebp - 0x50], edx
call sub.cygwin1.dll___getreent
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [esp + 0x14], edi
mov edi, dword [ebp - 0x4c]
mov dword [esp + 4], str.Contents:__s___ld__vs.__s___ld__n
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [ebp - 0x24]
lea edx, [eax - 0xc]
cmp eax, method.std::string.swap_std::string_
jne 0x419ff0
mov eax, dword [ebp - 0x20]
lea edx, [eax - 0xc]
cmp eax, method.std::string.swap_std::string_
je 0x419bcb
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x419bcb
lea eax, [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00451180
jmp 0x419bcb
movzx eax, word [esi + 4]
xor ax, word [ebx + 4]
test ax, 0xfff
jne 0x419bf4
mov eax, dword [esi + 4]
xor eax, dword [ebx + 4]
test eax, 0xfff000
je 0x419c20
jmp 0x419bf4
movzx edx, byte [ebx + 8]
mov edi, eax
and edi, 1
mov ecx, edx
and ecx, 1
mov dword [ebp - 0x40], ecx
call sub.cygwin1.dll___getreent
mov ecx, dword [ebp - 0x40]
mov dword [esp + 8], edi
mov dword [esp + 4], str.width:__d_vs.__d_n
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov byte [ebp - 0x40], 1
jmp 0x419be7
movzx edx, byte [ebx + 8]
shr al, 1
and eax, 1
shr dl, 1
mov edi, edx
and edi, 1
mov dword [ebp - 0x48], edi
mov edi, eax
call sub.cygwin1.dll___getreent
mov ecx, dword [ebp - 0x48]
mov dword [esp + 8], edi
mov dword [esp + 4], str.fallback:__d_vs.__d_n
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
movzx eax, byte [esi + 8]
movzx edx, byte [ebx + 8]
xor edx, eax
jmp 0x419bde
mov dword [esp], eax
lea eax, [ebp - 0x28]
mov dword [esp + 8], 2
mov dword [esp + 4], 0x479a87
mov dword [ebp - 0x3c], eax
call fcn.00451150
jmp 0x419b34
mov dword [esp + 8], 2
mov dword [esp + 4], 0x479a87
mov dword [esp], eax
call fcn.00451150
jmp 0x419b66
lea eax, [ebp - 0x2c]
mov dword [esp + 8], 0x20
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x3c], eax
call fcn.00451138
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x419b56
lea eax, [ebp - 0x28]
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x3c], eax
call fcn.00451138
jmp 0x419b75
test edi, edi
je 0x419bcb
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.cygwin1.dll_memcmp
test eax, eax
je 0x419bcb
jmp 0x419d15
mov dword [esp + 4], 0x479ab2
mov dword [esp], ebx
call fcn.00451228
test eax, eax
je 0x419bcb
mov dword [esp + 4], 0x479a87
mov dword [esp], ebx
call fcn.00451228
test eax, eax
je 0x419bcb
jmp 0x419d05
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x419c87
lea eax, [ebp - 0x20]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00451180
jmp 0x419c87
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x419c76
lea eax, [ebp - 0x20]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00451180
jmp 0x419c76
mov ecx, 0xffffffff
lock xadd dword [eax - 4], ecx
test ecx, ecx
jg 0x419d8f
lea eax, [ebp - 0x2d]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00451180
jmp 0x419d8f
call sub.cygwin1.dll___stack_chk_fail
mov ebx, eax
jmp 0x46ea72