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

Disassembly:
sub esp, 0x108
mov eax, dword [0x529034]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x10c]
push ebx
push ebp
push esi
push edi
push dword [esp + 0x10]
mov dword [esp + 0x24], ecx
push ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x44], eax
call fcn.0044f900
mov ecx, eax
call fcn.00443700
mov edx, eax
lea ecx, [esp + 0x120]
call fcn.0044f800
test al, al
je 0x44d97d
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0xd4]
call fcn.0044f920
mov ecx, eax
call fcn.004437b0
mov edx, eax
lea ecx, [esp + 0x120]
call fcn.0044f800
test al, al
je 0x44d97d
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0xd4]
call fcn.0044f970
mov ecx, eax
call fcn.0044d780
mov edx, eax
lea ecx, [esp + 0x120]
call fcn.0044f800
test al, al
je 0x44d97d
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x18]
call fcn.0044f9b0
mov ecx, eax
call fcn.00443700
mov edx, eax
lea ecx, [esp + 0x120]
call fcn.0044f800
test al, al
jne 0x44e088
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0xd4]
call fcn.0044fa20
mov ecx, eax
call fcn.0044d780
push eax
lea eax, [esp + 0x124]
push eax
push dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
call fcn.0044f9d0
mov ecx, eax
call fcn.0044d740
push eax
lea edx, [esp + 0x12c]
lea ecx, [esp + 0xe0]
call fcn.0044bca0
add esp, 4
lea ecx, [esp + 0x8c]
mov edx, eax
call fcn.0044f9f0
add esp, 4
lea ecx, [esp + 0x70]
mov edx, eax
call fcn.00445940
add esp, 4
lea ecx, [esp + 0x84]
call fcn.004445d0
lea ecx, [esp + 0xd4]
call fcn.004445d0
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0xd4]
call fcn.0044fa80
mov ecx, eax
call fcn.0044d780
push eax
lea eax, [esp + 0x124]
push eax
push dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x38]
call fcn.0044fa60
mov ecx, eax
call fcn.0044d740
push eax
lea edx, [esp + 0x12c]
lea ecx, [esp + 0xf8]
call fcn.0044bca0
add esp, 4
lea ecx, [esp + 0xbc]
mov edx, eax
call fcn.0044f9f0
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, eax
call fcn.00445940
add esp, 4
lea ecx, [esp + 0xb4]
call fcn.004445d0
lea ecx, [esp + 0xec]
call fcn.004445d0
xor eax, eax
mov dword [esp + 0x2c], 0
push 0x2800
mov dword [esp + 0x4c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
call fcn.004b0a0d
add esp, 4
lea ecx, [esp + 0x4c]
mov ebp, eax
xor esi, esi
mov dword [esp + 0x40], ebp
xor ebx, ebx
call fcn.0044e2a0
xor edi, edi
mov dword [esp + 0x34], ebx
sub esp, 0x18
lea eax, [esp + 0x84]
mov ecx, esp
push eax
call fcn.00448160
call fcn.0044d7d0
lea ecx, [esp + 0x120]
call fcn.00447fd0
mov ecx, dword [esp + 0x20]
push eax
call fcn.0044d220
mov ecx, dword [esp + 0x3c]
call fcn.0044e300
test eax, eax
je 0x44e022
push edi
push 0x2000000
push 4
push edi
push 3
push 0x40000000
lea ecx, [esp + 0xb4]
call fcn.00447fd0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [esp + 0x24], ebx
cmp ebx, 0xffffffff
je 0x44e022
push 2
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea ecx, [esp + 0x120]
mov dword [esp + 0x30], eax
call fcn.00447fd0
sub esp, 0x18
mov esi, esp
push eax
push dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x110]
call fcn.0044fac0
mov ecx, eax
call fcn.0044e0b0
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00444630
push esi
call fcn.0045e2c0
mov ecx, dword [0x538ecc]
add esp, 0x20
call fcn.0044d010
push edi
push 0x2000000
push 4
push edi
push 3
push accept
lea ecx, [esp + 0x84]
call fcn.00447fd0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
mov dword [esp + 0x38], esi
cmp esi, 0xffffffff
je 0x44e022
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [esp + 0x2c]
push edi
push eax
push 4
lea eax, [esp + 0x20]
mov edi, esi
push eax
push edi
call ebx
cmp dword [esp + 0x14], 0
jbe 0x44dcf1
xor ebp, ebp
push 0
lea eax, [esp + 0x30]
push eax
push 4
lea eax, [esp + 0x28]
push eax
push edi
call ebx
lea eax, [esp + 0x1b]
mov byte [esp + 0x1b], 0
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xd8]
inc eax
push eax
call fcn.0044e160
push 0
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x24]
push ecx
lea ecx, [esp + 0xe4]
call fcn.0044e140
push eax
push edi
call ebx
push 1
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
mov esi, eax
lea eax, [esp + 0x30]
push eax
push 4
lea eax, [esp + 0x1c]
push eax
push edi
call ebx
push 0
lea eax, [esp + 0x30]
push eax
push 4
lea eax, [esp + 0x2c]
push eax
push edi
call ebx
push ecx
lea ecx, [esp + 0xd8]
call fcn.0044e140
push eax
lea ecx, [esp + 0x88]
call fcn.00444630
push dword [esp + 0x20]
lea ecx, [esp + 0xd0]
push esi
call fcn.004467f0
push eax
lea edx, [esp + 0x88]
lea ecx, [esp + 0xf0]
call fcn.0044fc40
add esp, 4
lea ecx, [esp + 0x4c]
push eax
lea eax, [esp + 0x68]
push eax
call fcn.0044fc60
lea ecx, [esp + 0xec]
call fcn.0044d7c0
lea ecx, [esp + 0x84]
call fcn.004445d0
lea ecx, [esp + 0xd4]
call fcn.0044e150
inc ebp
cmp ebp, dword [esp + 0x14]
jb 0x44dbf3
mov ebp, dword [esp + 0x40]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x10]
xor esi, esi
push ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x40], esi
call fcn.0044fc80
mov ecx, eax
call fcn.0044e0f0
push eax
lea ecx, [esp + 0x70]
call fcn.00447fd0
push eax
call fcn.004bcdc0
add esp, 8
mov edi, eax
mov dword [esp + 0x58], edi
cmp dword [esp + 0x14], esi
jne 0x44dd52
push esi
push esi
push edi
call fcn.004bccd9
add esp, 0xc
lea eax, [esp + 0x14]
push edi
push 1
push 4
push eax
call fcn.004bc421
add esp, 0x10
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x28]
push eax
mov ecx, edx
call fcn.00447d50
lea eax, [esp + 0x10]
mov ecx, edx
push eax
call fcn.00447d30
push eax
lea ecx, [esp + 0x2c]
call fcn.00447cf0
test al, al
je 0x44e01e
mov ebx, 0x64
mov dword [esp + 0x1c], ebx
nop dword [eax]
mov ecx, edx
call fcn.0044e300
mov ecx, eax
xor edx, edx
mov eax, ebx
div ecx
mov ecx, eax
call fcn.0044fcb0
cvttsd2si eax, xmm0
movzx eax, al
push eax
call fcn.0044d030
lea ecx, [esp + 0x28]
call fcn.0044e2d0
mov ebx, eax
lea eax, [esp + 0xd4]
push ebx
push eax
mov dword [esp + 0x5c], ebx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x3c], ecx
call fcn.0044d180
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x54]
call fcn.0044e1a0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x50]
call fcn.0044e270
push eax
lea ecx, [esp + 0x44]
call fcn.00447cf0
test al, al
je 0x44de5a
lea ecx, [esp + 0x40]
call fcn.0044e190
push 0
push dword [eax + 0x18]
lea esi, [eax + 0x18]
push edi
call fcn.004bccd9
add esp, 0xc
lea eax, [esp + 0x30]
push edi
push 1
push 4
push eax
call fcn.004bc421
mov eax, dword [esi]
push 0
add eax, 4
push eax
push edi
call fcn.004bccd9
add esp, 0x1c
lea eax, [esp + 0x34]
push edi
push 1
push 4
push eax
call fcn.004bc421
add esp, 0x10
jmp 0x44deed
lea ecx, [esp + 0xd4]
call fcn.00444570
lea ecx, [esp + 0xd4]
mov dword [esp + 0x20], eax
call fcn.00447fd0
push 2
push 0
push edi
mov esi, eax
call fcn.004bccd9
add esp, 0xc
lea eax, [esp + 0x20]
push edi
push 1
push 4
push eax
call fcn.004bc421
push 2
push 0
push edi
call fcn.004bccd9
add esp, 0x1c
push edi
push dword [esp + 0x24]
push 1
push esi
call fcn.004bc421
push 2
push 0
push edi
call fcn.004bccd9
add esp, 0x1c
lea eax, [esp + 0x30]
push edi
push 1
push 4
push eax
call fcn.004bc421
push 2
push 0
push edi
call fcn.004bccd9
add esp, 0x1c
lea eax, [esp + 0x34]
push edi
push 1
push 4
push eax
call fcn.004bc421
add esp, 0x10
inc dword [esp + 0x44]
push 0
push 0x2000000
push 3
push 0
push 3
push accept
mov ecx, ebx
call fcn.00447fd0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x44df30
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0xd4]
call fcn.004445d0
mov ebx, dword [esp + 0x1c]
jmp 0x44dfbe
mov edi, dword [esp + 0x24]
xor bl, bl
push 0x2800
push 0
push ebp
call fcn.004b4360
add esp, 0xc
lea eax, [esp + 0x48]
push 0
push eax
push 0x2800
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x48]
mov ecx, 1
cmp eax, 0x2800
movzx ebx, bl
push 0
cmovb ebx, ecx
lea ecx, [esp + 0x64]
push ecx
push eax
push ebp
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test bl, bl
je 0x44df36
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x54]
call fcn.00447fd0
push eax
call fcn.004bb1dc
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0xd8]
mov eax, dword [esp + 0x38]
add esp, 4
add dword [esp + 0x30], eax
add ebx, 0x64
mov dword [esp + 0x1c], ebx
call fcn.004445d0
mov edi, dword [esp + 0x58]
push ecx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x30]
call fcn.0044e2b0
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x10]
push eax
mov ecx, edx
call fcn.00447d30
push eax
lea ecx, [esp + 0x2c]
call fcn.00447cf0
test al, al
jne 0x44dd90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x44e01a
add dword [esp + 0x14], eax
push 0
push 0
push edi
call fcn.004bccd9
add esp, 0xc
lea eax, [esp + 0x14]
push edi
push 1
push 4
push eax
call fcn.004bc421
add esp, 0x10
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
test ebp, ebp
je 0x44e02f
push ebp
call fcn.004b0768
add esp, 4
test edi, edi
je 0x44e03c
push edi
call fcn.004bb151
add esp, 4
test ebx, ebx
je 0x44e04b
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
jmp 0x44e051
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x44e058
push esi
call ebx
lea ecx, [esp + 0x4c]
call fcn.0044e220
mov ecx, dword [esp + 0x3c]
call fcn.0044e2e0
lea ecx, [esp + 0x4c]
call fcn.0044e130
lea ecx, [esp + 0x9c]
call fcn.004445d0
lea ecx, [esp + 0x6c]
call fcn.004445d0
lea ecx, [esp + 0x120]
call fcn.004445d0
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b0726
add esp, 0x108
ret 0x1c