Function at 0x403bf0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x23c
mov ebx, dword [esp + 0x250]
mov esi, dword [esp + 0x25c]
mov eax, dword [ebx + 0x118]
test eax, eax
je 0x403ce0
mov edx, dword [esp + 0x254]
lea ecx, [ebx + 0x128]
mov edi, dword [ebx + 0x120]
mov ebp, dword [ebx + 0x124]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [edx], edi
mov dword [edx + 4], ebp
mov edx, dword [ebx + 0x1128]
jmp 0x403ca0
test eax, eax
mov edi, eax
je 0x403cc6
mov ecx, dword [esp + 0x258]
xor ebp, ebp
sub esi, edi
add edx, dword [esp + 0x1c]
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebx + 0x1128]
mov eax, dword [ebx + 0x118]
add dword [esp + 0x258], edi
add dword [esp + 0x18], edi
add edx, edi
sub eax, edi
add dword [ebx + 0x120], edi
adc dword [ebx + 0x124], ebp
mov dword [ebx + 0x1128], edx
mov dword [ebx + 0x118], eax
cmp eax, esi
mov edi, esi
cmovbe edi, eax
mov eax, dword [ebx + 0x112c]
sub eax, edx
cmp eax, edi
jb 0x403c48
test edi, edi
jne 0x403c4e
mov eax, dword [esp + 0x18]
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
call fcn.00402320
test eax, eax
jle 0x403cb7
mov eax, dword [ebx + 0x118]
mov edx, dword [ebx + 0x1128]
jmp 0x403ca0
mov eax, dword [ebx + 0x114]
lea edi, [esp + 0x20]
test eax, eax
je 0x403d7b
mov edx, ebx
mov eax, edi
call fcn.004026b0
test eax, eax
je 0x403e00
mov edx, ebx
mov eax, edi
call fcn.004026b0
test eax, eax
je 0x403e00
cmp byte [esp + 0x20], 0x2d
jne 0x403e00
cmp byte [esp + 0x21], 0x2d
jne 0x403e00
mov ebp, dword [ebx + 0x114]
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebp
mov edx, eax
mov dword [esp + 8], eax
lea eax, [esp + 0x22]
mov dword [esp], eax
mov dword [esp + 0x14], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x403ec7
cmp byte [esp + edx + 0x22], 0x2d
jne 0x403ef1
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov dword [ebx + 0x114], 0
mov eax, dword [ebx + 0x110]
cmp eax, 0xffffffff
je 0x403e3a
xor ebp, ebp
cmp dword [ebx + 0x1138], 2
je 0x403e28
mov dword [esp], ebx
call fcn.00403710
mov edx, dword [ebx + 0x1138]
cmp edx, 1
je 0x403eb6
test eax, eax
je 0x403fbe
test eax, eax
jle 0x403ff0
sub eax, 0x12c
cmp eax, 0x63
ja 0x403e10
mov dword [ebx + 0x1138], 2
mov eax, dword [ebx + 0x114]
jmp 0x403cea
mov eax, dword [esp + 0x18]
test eax, eax
je 0x404006
add dword [ebx + 0x1148], 1
mov eax, dword [ebx + 0x118]
test eax, eax
jne 0x403c16
add esp, 0x23c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
test edx, edx
je 0x403eaa
mov eax, dword [ebx + 0x114]
test eax, eax
jne 0x403cf2
jmp 0x403df2
mov dword [esp], eax
call sub.msvcrt.dll__close
mov dword [ebx + 0x110], 0xffffffff
mov eax, dword [ebx + 0x1140]
cmp dword [ebx + 0x1148], eax
je 0x403e00
mov eax, dword [ebx + 0x10c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x108]
mov dword [esp], eax
call fcn.00402770
mov edx, dword [ebx + 0x1148]
mov dword [ebx + 0x1138], 0
mov dword [ebx + 0x112c], 0
mov dword [ebx + 0x1128], 0
mov dword [ebx + 0x1144], edx
cmp eax, 0xffffffff
mov dword [ebx + 0x110], eax
je 0x403ffc
mov eax, ebx
mov ebp, 1
call fcn.00402080
jmp 0x403d99
mov eax, ebx
call fcn.00402080
jmp 0x403e18
mov dword [ebx + 0x1138], 2
mov dl, 2
jmp 0x403db0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
mov dword [esp + 4], str.got_bad_block_boundary:__s____s
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, 0xffffffff
jmp 0x403cbb
mov eax, 0x2d
mov dword [esp + 0x18], 0
lea ebp, [esp + 0x228]
cmp al, 0xa
je 0x403ddf
cmp al, 0xd
je 0x403ddf
test al, al
je 0x403ddf
mov edx, ebx
mov eax, edi
call fcn.004026b0
test eax, eax
je 0x403e00
movzx eax, byte [edi]
test al, al
je 0x403f4e
mov edx, edi
lea ecx, [eax - 0x41]
cmp cl, 0x19
ja 0x403f44
add eax, 0x20
mov byte [edx], al
add edx, 1
movzx eax, byte [edx]
test al, al
jne 0x403f37
lea ecx, [esp + 0x220]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], str.content_range:_bytes__I64u__I64u_
mov dword [esp], edi
call sub.msvcrt.dll_sscanf
cmp eax, 2
je 0x403f80
movzx eax, byte [esp + 0x20]
jmp 0x403f05
mov eax, dword [esp + 0x224]
mov edx, dword [esp + 0x220]
mov dword [esp + 0x18], 1
mov dword [ebx + 0x124], eax
mov eax, dword [esp + 0x228]
mov dword [ebx + 0x120], edx
add eax, 1
sub eax, edx
mov dword [ebx + 0x118], eax
movzx eax, byte [esp + 0x20]
jmp 0x403f05
mov ecx, ebp
test cl, cl
je 0x403db8
mov eax, dword [ebx]
mov dword [esp + 4], str.EOF_from__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, 0xffffffff
jmp 0x403cbb
cmp eax, 1
sbb eax, eax
not eax
jmp 0x403cbb
mov eax, 0xffffffff
jmp 0x403cbb
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x2e
mov dword [esp + 4], 1
mov dword [esp], str.got_multipart_byteranges_but_no_Content_Range_
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, 0xffffffff
jmp 0x403cbb