Function at 0x44fcb0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55a40b
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x5caea4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x80], esi
cmp byte [esi + 0x49], 0x33
mov eax, dword [ebp + 8]
mov dword [ebp - 0x90], eax
jb 0x44fd0b
cmp dword [esi + 0x14], 0
jl 0x44fd02
jg 0x44fd0b
cmp dword [esi + 0x10], 0xa00000
jae 0x44fd0b
mov dword [ebp - 0x68], 0x80000
jmp 0x44fd12
mov dword [ebp - 0x68], 0x100000
push ecx
lea eax, [ebp - 0xe0]
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x88], xmm0
call fcn.0044e510
cmp dword [ebp - 0xdc], 0xffffffff
jne 0x44fd42
push 1
push ecx
mov ecx, esi
call fcn.0044e5b0
jmp 0x450b3b
mov edi, dword [ebp - 0x84]
push 0
push 0
push edi
push dword [ebp - 0x88]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x44fe52
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_1_._Code
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.00452b10
mov edi, eax
add esi, 0x30
add esp, 4
cmp esi, edi
je 0x44fdc1
mov ecx, esi
call fcn.00448eb0
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [esi], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x44fdfb
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44fdf1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b58
push edx
push ecx
call fcn.00518d68
add esp, 8
mov edx, dword [ebp - 0x98]
xor eax, eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 7
mov word [ebp - 0x64], ax
cmp edx, 8
jb 0x450b39
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x450b2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b5d
jmp 0x450b2f
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x14]
push 0
push ecx
push dword [ebp - 0x68]
push dword [eax]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x450af2
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x450af2
cmp eax, dword [ebp - 0x68]
jne 0x450af2
push 0
push dword [ebp - 0x90]
lea eax, [esi + 4]
mov dword [ebp - 0x24], 0
sub esp, 8
xorps xmm0, xmm0
mov ecx, esp
movq qword [ebp - 0x2c], xmm0
push eax
call fcn.00451770
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x2c]
call fcn.0044be50
add esp, 0x10
push 0
push 0
push edi
mov dword [ebp - 4], 2
push dword [ebp - 0x88]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x44ff9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_2_._Code
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x64]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x44ff44
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44ff3a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b62
push edx
push ecx
call fcn.00518d68
add esp, 8
mov edx, dword [ebp - 0x98]
xor eax, eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 7
mov word [ebp - 0x64], ax
cmp edx, 8
jb 0x450ab5
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x450aab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b67
jmp 0x450aab
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
sub ecx, eax
push 0
push edx
push ecx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x450a3d
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x450a3d
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
cmp ecx, eax
jne 0x450a3d
mov edx, dword [ebp - 0x90]
lea ecx, [ebp - 0x44]
push 0x20
call fcn.0044c490
add esp, 4
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.00451670
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov eax, dword [ebp - 0x68]
mulsd xmm0, qword [0x5c1080]
add eax, eax
mov dword [ebp - 0x74], ecx
sub ecx, eax
mov dword [ebp - 0x4c], edx
mov esi, ecx
sbb edx, 0
mov dword [ebp - 0x94], ecx
mov edi, edx
mov dword [ebp - 0x78], edx
shrd esi, edi, 0x18
movsd qword [ebp - 0x70], xmm0
shr edi, 0x18
shld edi, esi, 1
add esi, esi
add esi, 1
mov ecx, esi
adc edi, 0
mov edx, edi
call fcn.005196d0
movsd qword [ebp - 0x88], xmm0
divsd xmm0, qword [0x5c1070]
call fcn.005195b0
sub eax, esi
sbb edx, edi
add eax, 1
mov ecx, eax
adc edx, 0
call fcn.005196d0
mulsd xmm0, qword [ebp - 0x70]
addsd xmm0, qword [ebp - 0x88]
call fcn.005195b0
mov ecx, edx
mov dword [ebp - 0xd8], eax
push ecx
push eax
push dword [ebp - 0x78]
mov dword [ebp - 0xd4], ecx
push dword [ebp - 0x94]
call fcn.00519780
mov ecx, eax
mov esi, edx
movzx eax, byte [ebp + 0xc]
push esi
cdq
push ecx
push edx
push eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0xb4], esi
call fcn.00519740
push 0
push 0x64
push edx
push eax
call fcn.00519780
mov esi, eax
mov edi, edx
mov ecx, esi
call fcn.005196d0
mulsd xmm0, qword [0x5c1078]
call fcn.005195b0
shld edi, esi, 1
mov dword [ebp - 0xcc], eax
add esi, esi
mov dword [ebp - 0x94], edx
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0xb0], ecx
mov eax, edi
sbb eax, edx
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], eax
cmp eax, edx
jb 0x450136
mov ecx, dword [ebp - 0x8c]
ja 0x450116
cmp dword [ebp - 0xb0], ecx
jbe 0x450136
mov eax, esi
mov dword [ebp - 0xb0], ecx
sub eax, ecx
mov dword [ebp - 0xd0], edx
mov ecx, edi
mov dword [ebp - 0xcc], eax
sbb ecx, edx
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0xd4], 0
xorps xmm0, xmm0
mov edi, dword [ebp - 0x34]
mov edx, edi
movq qword [ebp - 0x88], xmm0
movlpd qword [ebp - 0xc0], xmm0
mov dword [ebp - 0x78], edx
movlpd qword [ebp - 0x70], xmm0
jb 0x450751
ja 0x450172
cmp dword [ebp - 0xd8], 0
jbe 0x450751
mov ecx, dword [ebp - 0x6c]
lea eax, [edx - 1]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xbc], eax
nop word [eax + eax]
test ecx, ecx
jb 0x4501b4
ja 0x45019a
cmp eax, edx
jbe 0x4501b4
push 0
push edx
push ecx
push eax
call fcn.005197f0
mov esi, eax
add esi, 0xffffffff
adc edx, 0xffffffff
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x78]
jmp 0x4501b9
mov esi, eax
mov dword [ebp - 0x6c], ecx
mov eax, edx
mov dword [ebp - 0x54], 0
sub eax, esi
mov dword [ebp - 0x50], 0xf
cmp eax, dword [ebp - 0x84]
mov ecx, 1
mov byte [ebp - 0x64], 0
cmovbe ecx, esi
sub edx, ecx
cmp edi, edx
jb 0x450b8a
sub edi, edx
lea eax, [ebp - 0x44]
or ecx, 0xffffffff
cmp edi, 0xffffffff
cmovb ecx, edi
cmp dword [ebp - 0x30], 0x10
push ecx
cmovae eax, dword [ebp - 0x44]
lea ecx, [ebp - 0x64]
add eax, edx
push eax
call fcn.0044a320
lea ecx, [ebp - 0x64]
call fcn.00451670
mulsd xmm0, qword [0x5c1080]
mov edx, dword [ebp - 0x50]
movsd qword [ebp - 0x70], xmm0
cmp edx, 0x10
jb 0x450252
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x450248
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b58
push edx
push ecx
call fcn.00518d68
add esp, 8
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
sbb edx, dword [ebp - 0x94]
add ecx, 1
adc edx, 0
call fcn.005196d0
mulsd xmm0, qword [ebp - 0x70]
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xcc]
movsd qword [ebp - 0xc8], xmm0
call fcn.005196d0
addsd xmm0, qword [ebp - 0xc8]
call fcn.005195b0
mov ecx, edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x7c], ecx
test ecx, ecx
jne 0x4502b3
cmp eax, 0x800000
jbe 0x4502c1
mov dword [ebp - 0x4c], 0x800000
mov dword [ebp - 0x7c], 0
push dword [ebp - 0xb4]
push dword [ebp - 0x8c]
push dword [ebp - 0x74]
push dword [ebp - 0xbc]
call fcn.00519740
mov esi, edx
mov edi, eax
add edi, dword [ebp - 0x68]
mov ecx, edi
adc esi, 0
sub ecx, dword [ebp - 0x4c]
mov edx, esi
sbb edx, dword [ebp - 0x7c]
add ecx, dword [ebp - 0x8c]
adc edx, dword [ebp - 0xb4]
sub ecx, edi
sbb edx, esi
add ecx, 1
adc edx, 0
call fcn.005196d0
mulsd xmm0, qword [ebp - 0x70]
mov edx, esi
mov ecx, edi
movsd qword [ebp - 0x70], xmm0
call fcn.005196d0
addsd xmm0, qword [ebp - 0x70]
call fcn.005195bf
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xc4], edx
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
sub ecx, eax
sbb edi, edx
mov dword [ebp - 0x6c], edi
cmp edi, dword [ebp - 0x7c]
jb 0x450351
mov edi, dword [ebp - 0x4c]
ja 0x450359
cmp ecx, edi
ja 0x450359
mov edi, ecx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], ecx
cmp edx, dword [ebp - 0xdc]
jg 0x450961
jl 0x450373
cmp eax, dword [ebp - 0xe0]
jae 0x450961
push 0
push 0
push edx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x4506e3
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x14]
push 0
push ecx
push edi
push dword [eax]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x450621
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x450621
xor ecx, ecx
cmp eax, edi
jne 0x450621
cmp ecx, dword [ebp - 0x7c]
jne 0x450621
push ecx
push dword [ebp - 0x90]
mov dword [ebp - 0x18], ecx
lea eax, [esi + 4]
sub esp, 8
xorps xmm0, xmm0
mov ecx, esp
movq qword [ebp - 0x20], xmm0
push eax
call fcn.00451770
mov edx, edi
lea ecx, [ebp - 0x20]
call fcn.0044be50
add esp, 0x10
push 0
push 0
mov byte [ebp - 4], 8
push dword [ebp - 0xc4]
push dword [ebp - 0xb8]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x45052b
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x20]
sub ecx, eax
push 0
push edx
push ecx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4504e2
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x4504e2
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
sub eax, ecx
cmp edx, eax
jne 0x4504e2
mov byte [ebp - 4], 5
test ecx, ecx
je 0x450499
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x45047a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b58
push edx
push ecx
call fcn.00518d68
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x74]
add eax, 1
mov dword [ebp - 0xbc], eax
adc ecx, 0
mov dword [ebp - 0x74], ecx
cmp ecx, dword [ebp - 0xd4]
ja 0x4504ce
jb 0x4504c3
cmp eax, dword [ebp - 0xd8]
jae 0x4504ce
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x78]
jmp 0x450190
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x4c], edx
jmp 0x45077e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_write_file_2_._Code
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xac]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
lea ecx, [ebp - 0xac]
call fcn.00448eb0
lea ecx, [ebp - 0x64]
call fcn.00448eb0
jmp 0x4505ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_4_._Code
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x64]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x450596
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45058c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b6c
push edx
push ecx
call fcn.00518d68
add esp, 8
mov edx, dword [ebp - 0x98]
xor eax, eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 7
mov word [ebp - 0x64], ax
cmp edx, 8
jb 0x4505ea
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4505e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b71
push edx
push ecx
call fcn.00518d68
add esp, 8
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4509d4
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4509ca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b76
jmp 0x4509ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_read_file_2_._Code
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x64]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x45068c
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x450682
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b7b
push edx
push ecx
call fcn.00518d68
add esp, 8
mov edx, dword [ebp - 0x98]
xor eax, eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 7
mov word [ebp - 0x64], ax
cmp edx, 8
jb 0x4509d4
mov ecx, dword [ebp - 0xac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4509ca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b80
jmp 0x4509ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_3_._Code
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x64]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x45068c
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x450682
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b85
jmp 0x450682
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0xc0]
mov esi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xbc]
sub ecx, dword [ebp - 0x68]
mov dword [ebp - 0x78], ecx
sbb edx, 0
add edi, dword [ebp - 0xb8]
mov dword [ebp - 0x80], edx
adc eax, dword [ebp - 0xc4]
cmp edx, eax
jg 0x4507aa
jl 0x4507a0
cmp ecx, edi
jae 0x4507aa
mov ecx, edi
mov edx, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x80], edx
mov edi, dword [ebp - 0x74]
sub edi, ecx
sbb dword [ebp - 0x4c], edx
cmp edx, dword [ebp - 0xdc]
jg 0x450961
jl 0x4507cc
cmp ecx, dword [ebp - 0xe0]
jae 0x450961
push 0
push 0
push edx
push ecx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x450833
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_5_._Code
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xac]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
lea ecx, [ebp - 0xac]
call fcn.00448eb0
lea ecx, [ebp - 0x64]
call fcn.00448eb0
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x45], 0
call fcn.00449020
jmp 0x450ab9
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x14]
push 0
push ecx
push edi
push dword [eax]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4509e5
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4509e5
xor ecx, ecx
cmp eax, edi
jne 0x4509e5
cmp ecx, dword [ebp - 0x4c]
jne 0x4509e5
push ecx
push dword [ebp - 0x90]
mov dword [ebp - 0x18], ecx
lea eax, [esi + 4]
sub esp, 8
xorps xmm0, xmm0
mov ecx, esp
movq qword [ebp - 0x20], xmm0
push eax
call fcn.00451770
mov edx, edi
lea ecx, [ebp - 0x20]
call fcn.0044be50
add esp, 0x10
push 0
push 0
mov byte [ebp - 4], 0xd
push dword [ebp - 0x80]
push dword [ebp - 0x78]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x4508fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_set_file_pointer_6_._Code
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xac]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
lea ecx, [ebp - 0xac]
call fcn.00448eb0
lea ecx, [ebp - 0x64]
call fcn.00448eb0
jmp 0x4505ea
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x20]
sub ecx, eax
push 0
push edx
push ecx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x45097b
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x45097b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
sub eax, ecx
cmp edx, eax
jne 0x45097b
mov byte [ebp - 4], 5
test ecx, ecx
je 0x450961
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x450957
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b8f
push edx
push ecx
call fcn.00518d68
add esp, 8
push 0
push ecx
mov ecx, esi
call fcn.0044e5b0
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x45], al
call fcn.00449020
jmp 0x450ab9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x110]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_write_file_3_._Code
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xf8]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
lea ecx, [ebp - 0xf8]
call fcn.00448eb0
lea ecx, [ebp - 0x110]
call fcn.00448eb0
jmp 0x4505ea
push edx
push ecx
call fcn.00518d68
add esp, 8
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x45], 0
call fcn.00449020
jmp 0x450ab9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xf8]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_read_file_3_._Code
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x110]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
lea ecx, [ebp - 0x110]
call fcn.00448eb0
lea ecx, [ebp - 0xf8]
call fcn.00448eb0
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x45], 0
call fcn.00449020
jmp 0x450ab9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_write_file_1_._Code
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x64]
call fcn.00452b10
add esp, 4
lea ecx, [esi + 0x30]
push eax
call fcn.00448f10
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x44ff44
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44ff3a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x44ff3a
jmp 0x450b76
push edx
push ecx
call fcn.00518d68
add esp, 8
mov byte [ebp - 0x45], 0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x450aed
mov edx, dword [ebp - 0x24]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x450ae3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x450b76
push edx
push ecx
call fcn.00518d68
add esp, 8
mov al, byte [ebp - 0x45]
jmp 0x450b3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.0044ccb0
push eax
mov edx, str.Part:_Cannot_read_file_1_._Code
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x64]
call fcn.00452b10
mov edi, eax
add esi, 0x30
add esp, 4
cmp esi, edi
je 0x44fdc1
jmp 0x44fd97
push edx
push ecx
call fcn.00518d68
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00518b27
mov esp, ebp
pop ebp
ret 0xc
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.005343f1
call fcn.0044a560
call fcn.005343f1
int3