Function at 0x5dfd10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x645f88
push eax
mov dword fs:[0], esp
sub esp, 0x28
push esi
mov esi, ecx
cmp dword [esi + 4], 0
je 0x5dff32
cmp byte [esi + 0x34], 0
jne 0x5dff32
cmp dword [esi + 0x2c], 0
mov ecx, dword [esi + 0x28]
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, ebx
jl 0x5dfd71
jg 0x5dfd58
test ecx, ecx
jb 0x5dfd71
mov eax, ebx
cdq
add eax, dword [esi + 0x18]
adc edx, dword [esi + 0x1c]
cmp edx, dword [esi + 0x2c]
jl 0x5dfd71
jg 0x5dfd6c
cmp eax, ecx
jbe 0x5dfd71
mov edi, ecx
sub edi, dword [esi + 0x18]
test edi, edi
jle 0x5dff1a
mov eax, edi
cdq
mov dword [ebp - 0x10], eax
mov ecx, edx
add eax, dword [esi + 0x18]
mov dword [ebp - 0x14], eax
adc ecx, dword [esi + 0x1c]
cmp dword [esi + 0x24], 0
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x20]
mov dword [ebp + 0xc], edx
mov dword [esi + 0x1c], ecx
jl 0x5dfde4
jg 0x5dfda2
test eax, eax
jb 0x5dfde4
cmp ecx, dword [esi + 0x24]
jl 0x5dfde4
jg 0x5dfdae
cmp dword [ebp - 0x14], eax
jbe 0x5dfde4
push 0x29
push str.E_jp2.cpp_
lea ecx, [ebp - 0x34]
call fcn.005b0a70
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x34]
push 0x6b02f0
mov dword [ebp - 4], 0
call dword [eax + 8]
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
call fcn.005b0cb0
mov edx, dword [ebp + 0xc]
cmp byte [esi + 0x35], 0
je 0x5dfe98
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x5dfe0a
mov eax, dword [ecx]
push edi
push dword [ebp + 8]
mov eax, dword [eax + 0x10]
call eax
test al, al
sete al
mov byte [esi + 0x34], al
jmp 0x5dfe64
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x5dfe2a
push ecx
push edi
push 1
push dword [ebp + 8]
call fcn.00636939
add esp, 0x10
cmp eax, edi
setne al
jmp 0x5dfe41
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x5dfe55
mov eax, dword [ecx]
push edi
push dword [ebp + 8]
mov eax, dword [eax + 0x10]
call eax
test al, al
sete al
mov ecx, dword [ebp - 0x10]
mov byte [esi + 0x34], al
mov eax, dword [esi + 0xc]
add dword [eax + 0x18], ecx
mov ecx, dword [ebp + 0xc]
adc dword [eax + 0x1c], ecx
jmp 0x5dfe64
cmp byte [eax + 0x10], 0
je 0x5dfe64
mov ecx, dword [ebp - 0x10]
add dword [eax + 0x18], ecx
adc dword [eax + 0x1c], edx
cmp edi, ebx
jne 0x5dfe83
cmp byte [esi + 0x34], 0
jne 0x5dfe83
pop edi
pop ebx
mov al, 1
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
test edx, edx
jl 0x5dff05
jg 0x5dfeb1
cmp ecx, eax
jbe 0x5dff05
add eax, 0x400
add eax, ecx
test edx, edx
jl 0x5dfec6
jg 0x5dff45
cmp ecx, eax
ja 0x5dff45
push eax
call fcn.004b28b8
mov edx, dword [esi + 0x30]
add esp, 4
mov dword [ebp + 0xc], eax
test edx, edx
je 0x5dfef4
mov ecx, dword [esi + 0x18]
sub ecx, edi
push ecx
push edx
push eax
call fcn.004b3b20
push dword [esi + 0x30]
call fcn.004b28c1
mov eax, dword [ebp + 0xc]
add esp, 0x10
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x14]
add eax, 0x400
add eax, dword [ebp - 0x10]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x30]
push edi
push dword [ebp + 8]
sub eax, edi
add eax, dword [esi + 0x18]
push eax
call fcn.004b3b20
add esp, 0xc
cmp edi, ebx
pop edi
pop ebx
sete al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0xc]
xor al, al
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x20]
call fcn.004b16b6
push 0x6df11c
lea eax, [ebp - 0x20]
push eax
call fcn.004b4774
int3