Function at 0x45dcf9
Capabilities:
Terminate process
Write file on windows

Disassembly:
lea edi, [eax + 3]
mov al, 0x3a
pop edx
xor esi, esi
sub edx, 1
jmp fcn.00463aee
lea ecx, [ebx + eax*4]
mov edi, dword [0x402ad4]
sub eax, 3
jb 0x45dfb9
cmp eax, dword [0x402ad8]
jae 0x45d842
mov esi, dword [ecx + edi*4 - 0xc]
cmp edi, dword [0x402ad4]
je 0x45dd2b
mov edi, dword [0x402ad4]
jmp 0x45dd17
mov edi, dword [ebx + esi*4 + 4]
shl esi, 2
push edx
test edi, 2
jne 0x45dd4a
mov edx, dword [esp + 4]
mov al, 0x3b
sub edx, 1
jmp fcn.00463aee
test edi, 8
jne 0x45dd8c
or edi, 8
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esi + 4], edi
cmp ecx, eax
jg 0x45dd82
fild qword [esi + 0x10]
fild dword [esi + 0xc]
fsubp st(1)
fistp qword [esi + 0x10]
push edx
lea ecx, [esi + 0x14]
push 0
push ecx
push dword [esi + 0x10]
push dword [esi]
call dword [sym.imp.kernel32.dll_SetFilePointer]
pop edx
jmp 0x45dd8c
mov dword [esi + 8], 1
mov dword [esi + 0xc], ebx
cmp edx, 0x40000000
jl 0x45dda4
cmp byte [ebx + edx*4 - 1], 0x12
jne 0x45de04
fld qword [ebx + edx*4]
fistp dword [esp]
mov edx, dword [esp]
mov ecx, 1
mov eax, dword [esi + 8]
cmp dl, 0xa
jne 0x45ddc5
test edi, 4
jne 0x45ddc5
mov dword [esp], 0xa0d
mov ecx, 2
lea edx, [esi + eax + 0x17]
add eax, ecx
cmp eax, 0x1fe9
jle 0x45dde8
push edx
push ecx
push esi
call fcn.0045d7de
pop esi
pop ecx
pop edx
mov eax, ecx
mov dword [esi + 0xc], ebx
add eax, 1
lea edx, [esi + 0x18]
mov edi, edx
mov edx, esi
mov esi, esp
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0xc]
mov dword [edx + 8], eax
sub eax, 1
add esp, 4
cmp eax, edi
jle 0x45de03
mov dword [edx + 0xc], eax
ret
add esp, 4
mov ecx, dword [ebx + edx*4 - 0xc]
mov eax, dword [esi + 8]
test ecx, ecx
je 0x45de03
cmp byte [ebx + edx*4 - 1], 0x82
jne 0x45df13
test edi, 4
je 0x45de97
add eax, ecx
cmp eax, 0x1fe9
jle 0x45de7a
cmp dword [esi + 0xc], 0
je 0x45de4d
push edx
push ecx
sub edi, 8
call fcn.0045d7db
pop ecx
mov eax, 1
pop edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ebx
add eax, ecx
cmp ecx, 0x1fe8
jle 0x45de76
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
add eax, ecx
adc edi, ebx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edi
mov eax, dword [esi]
shl edx, 2
push ebx
push esp
push ecx
push edx
push eax
call dword [sym.imp.kernel32.dll_WriteFile]
ret
or dword [esi + 4], 8
mov edi, dword [esi + 8]
push esi
mov dword [esi + 8], eax
sub eax, 1
lea edi, [esi + edi + 0x17]
lea esi, [ebx + edx*4]
pop edx
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [edx + 0xc]
jle 0x45de96
mov dword [edx + 0xc], eax
ret
push esi
lea edi, [esi + eax + 0x17]
lea esi, [ebx + edx*4]
mov edx, eax
cmp edx, 0x1fe8
jle 0x45dec5
push esi
mov esi, dword [esp + 4]
push ecx
mov dword [esi + 0xc], 0x1fe8
call fcn.0045d7de
pop ecx
mov dword [esi + 0xc], ebx
pop esi
mov edx, 1
lodsb al, byte [esi]
cmp al, 0xa
jne 0x45defa
mov byte [edi], 0xd
add edx, 1
add edi, 1
cmp edx, 0x1fe8
jle 0x45defa
push esi
mov esi, dword [esp + 4]
push ecx
mov dword [esi + 0xc], 0x1fe8
call fcn.0045d7de
pop ecx
mov dword [esi + 0xc], ebx
pop esi
mov edx, 1
mov al, 0xa
stosb byte es:[edi], al
add edx, 1
sub ecx, 1
jg 0x45dea1
pop esi
mov dword [esi + 8], edx
sub edx, 1
cmp dword [esi + 0xc], edx
jge 0x45df12
mov dword [esi + 0xc], edx
ret
push esi
lea edi, [esi + eax + 0x17]
lea esi, [ebx + edx*4]
mov edx, eax
cmp edx, 0x1fe8
jle 0x45df41
push esi
mov esi, dword [esp + 4]
push ecx
mov dword [esi + 0xc], 0x1fe8
call fcn.0045d7de
pop ecx
mov dword [esi + 0xc], ebx
pop esi
mov edx, 1
lodsd eax, dword [esi]
cmp eax, 0x40000000
jl 0x45df5c
push ebx
cmp byte [ebx + eax*4 - 1], 0x12
jne 0x45e08f
fld qword [ebx + eax*4]
fistp dword [esp]
pop eax
cmp al, 0xa
jne 0x45df9c
mov eax, dword [esp]
test dword [eax + 4], 4
jne 0x45df9a
mov byte [edi], 0xd
add edx, 1
add edi, 1
cmp edx, 0x1fe8
jle 0x45df9a
push esi
mov esi, dword [esp + 4]
push ecx
mov dword [esi + 0xc], 0x1fe8
call fcn.0045d7de
pop ecx
mov dword [esi + 0xc], ebx
pop esi
mov edx, 1
mov al, 0xa
stosb byte es:[edi], al
add edx, 1
sub ecx, 1
jg 0x45df1d
pop esi
mov dword [esi + 8], edx
sub edx, 1
cmp dword [esi + 0xc], edx
jge 0x45dfb8
mov dword [esi + 0xc], edx
ret
add eax, 3
jg 0x45dfca
pop edx
mov al, 0x3b
sub edx, 1
jmp fcn.00463aee
push edx
cmp dword [0x402b40], 0
jne 0x45dfdc
call fcn.0045d90d
mov edx, dword [esp]
cmp eax, 1
je 0x45dfe8
mov eax, dword [0x402b44]
jmp 0x45dfed
mov eax, dword [0x402b40]
cmp edx, 0x40000000
jl 0x45e002
cmp byte [ebx + edx*4 - 1], 0x12
jne 0x45e012
fld qword [ebx + edx*4]
fistp dword [esp]
mov edx, esp
push ebx
push esp
push 1
push edx
push eax
call dword [sym.imp.kernel32.dll_WriteFile]
pop edx
ret
add esp, 4
mov ecx, dword [ebx + edx*4 - 0xc]
cmp byte [ebx + edx*4 - 1], 0x82
jne 0x45e055
lea edx, [ebx + edx*4]
cmp ecx, 0x2000
jle 0x45e049
push ecx
push edx
push eax
mov ecx, 0x2000
call 0x45e049
pop eax
pop edx
pop ecx
add edx, 0x2000
sub ecx, 0x2000
jmp 0x45e023
push ebx
push esp
push ecx
push edx
push eax
call dword [sym.imp.kernel32.dll_WriteFile]
ret
lea esi, [ebx + edx*4]
mov edi, eax
sub ecx, 1
jl 0x45e054
lodsd eax, dword [esi]
push edi
push esi
push ecx
push eax
mov edx, esp
cmp eax, 0x40000000
jl 0x45e07a
cmp byte [ebx + eax*4 - 1], 0x12
jne 0x45e08c
fld qword [ebx + eax*4]
fistp dword [esp]
push ebx
push esp
push 1
push edx
push edi
call dword [sym.imp.kernel32.dll_WriteFile]
pop eax
pop ecx
pop esi
pop edi
jmp 0x45e05a
add esp, 8
add esp, 8
mov al, 0x41
pop edx
xor edi, edi
xor esi, esi
sub edx, 1
jmp fcn.00463aee