Function at 0x401714
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov esi, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov dword [esp], esi
call dbg.jq_start
mov ebp, 0xe
lea edi, [esp + 0x40]
jmp 0x40196a
test byte [0x43d024], 8
je 0x401868
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._jv_get_kind
cmp eax, 5
jne 0x401868
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea ebx, [eax + 0x20]
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x50]
mov dword [esp], eax
call dbg.jv_copy
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
call dbg.jv_string_length_bytes
mov ebp, eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_string_value
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._fwrite
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov ebp, 0
jmp 0x401945
mov edx, dword [0x43d024]
mov eax, edx
and eax, 0x100
cmp eax, 1
sbb ebx, ebx
not ebx
and ebx, 8
mov ecx, edx
and ecx, 0x10
mov eax, ebx
or eax, 1
test ecx, ecx
cmove ebx, eax
mov ecx, edx
and ecx, 0x20
mov eax, ebx
or eax, 2
test ecx, ecx
cmovne ebx, eax
mov ecx, edx
and ecx, 0x40
mov eax, ebx
or eax, 4
test ecx, ecx
cmovne ebx, eax
and edx, 0x80
mov eax, ebx
and eax, 0xfffffffb
test edx, edx
cmovne ebx, eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._jv_get_kind
mov ebp, 0xb
cmp eax, 2
je 0x40191d
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._jv_get_kind
cmp eax, 1
mov eax, 0xb
mov bp, 0
cmove ebp, eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_dump
mov dword [esp], 0xa
call sym._putchar
test byte [0x43d025], 0x10
je 0x40196a
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sym._fflush
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.jq_next
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._jv_get_kind
test eax, eax
jne 0x40176a
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov eax, ebp
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret