Function at 0x47ef10
Capabilities:
Create thread
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ebc83
mov eax, dword fs:[0]
push eax
sub esp, 0xad4
mov eax, dword [0x51eed4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa54], ecx
mov dword [ebp - 0xa50], 0
mov dword [ebp - 4], 2
xor ecx, ecx
mov eax, dword [ebp + 0x44]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004c0518
add esp, 4
mov dword [ebp - 0x8f4], eax
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov eax, dword [ebp + 0x44]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004c0518
add esp, 4
mov dword [ebp - 0x8f8], eax
mov eax, dword [ebp - 0x8f8]
mov dword [ebp - 0xd0], eax
mov byte [0x521b95], 0
mov ecx, dword [ebp - 0xa54]
mov dword [ecx + 0x284], 0
mov edx, dword [ebp - 0xa54]
mov dword [edx + 0x288], 0
mov dword [edx + 0x28c], 0
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x8fc], esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x900], esp
lea eax, [ebp + 0xc]
push eax
call fcn.00402b70
mov dword [ebp - 0xa58], eax
push esi
mov ecx, dword [ebp - 0xa54]
mov edx, dword [ecx + 0x29c]
mov eax, dword [ebp - 0xa54]
mov ecx, dword [eax + 0x29c]
mov edx, dword [edx]
mov eax, dword [edx + 0x40]
call eax
mov dword [ebp - 0xa5c], eax
mov ecx, dword [ebp - 0xa5c]
mov dword [ebp - 0xa60], ecx
lea ecx, [ebp - 0xcc]
call fcn.004897d0
mov dword [ebp - 0xa64], eax
mov byte [ebp - 4], 3
lea edx, [ebp - 0x91c]
push edx
push str.filename
lea ecx, [ebp - 0xcc]
call fcn.004897b0
mov ecx, eax
call fcn.00402230
mov dword [ebp - 0xa68], eax
mov eax, dword [ebp - 0xa68]
mov dword [ebp - 0xa6c], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xa6c]
push ecx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1d8
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x91c]
call fcn.00402bb0
lea edx, [ebp - 0x938]
push edx
push str.length
lea ecx, [ebp - 0xcc]
call fcn.004897b0
mov ecx, eax
call fcn.00402230
mov dword [ebp - 0xa70], eax
mov eax, dword [ebp - 0xa70]
mov dword [ebp - 0xa74], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xa74]
push ecx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1f4
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x938]
call fcn.00402bb0
lea edx, [ebp - 0x954]
push edx
push str.fileid
lea ecx, [ebp - 0xcc]
call fcn.004897b0
mov ecx, eax
call fcn.00402230
mov dword [ebp - 0xa78], eax
mov eax, dword [ebp - 0xa78]
mov dword [ebp - 0xa7c], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xa7c]
push ecx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x210
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x954]
call fcn.00402bb0
lea edx, [ebp - 0x970]
push edx
push 0
push str.hosts
lea ecx, [ebp - 0xcc]
call fcn.004898a0
mov ecx, eax
call fcn.00402230
mov dword [ebp - 0xa80], eax
mov eax, dword [ebp - 0xa80]
mov dword [ebp - 0xa84], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xa84]
push ecx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x22c
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x970]
call fcn.00402bb0
mov edx, dword [ebp - 0xa54]
mov eax, dword [ebp + 0x48]
mov dword [edx + 0x1d0], eax
mov ecx, dword [ebp + 0x4c]
mov dword [edx + 0x1d4], ecx
lea edx, [ebp - 0x98c]
push edx
mov eax, dword [ebp - 0xa54]
mov ecx, dword [eax + 0x29c]
mov edx, dword [ebp - 0xa54]
mov eax, dword [edx + 0x29c]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov dword [ebp - 0xa88], eax
mov ecx, dword [ebp - 0xa88]
mov dword [ebp - 0xa8c], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0xa8c]
push edx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x140
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x98c]
call fcn.00402bb0
lea eax, [ebp - 0x9a8]
push eax
mov ecx, dword [ebp - 0xa54]
mov edx, dword [ecx + 0x29c]
mov eax, dword [ebp - 0xa54]
mov ecx, dword [eax + 0x29c]
mov edx, dword [edx]
mov eax, dword [edx + 0x10]
call eax
mov dword [ebp - 0xa90], eax
mov ecx, dword [ebp - 0xa90]
mov dword [ebp - 0xa94], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xa94]
push edx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x15c
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9a8]
call fcn.00402bb0
lea eax, [ebp - 0x9c4]
push eax
mov ecx, dword [ebp - 0xa54]
mov edx, dword [ecx + 0x29c]
mov eax, dword [ebp - 0xa54]
mov ecx, dword [eax + 0x29c]
mov edx, dword [edx]
mov eax, dword [edx + 0x14]
call eax
mov dword [ebp - 0xa98], eax
mov ecx, dword [ebp - 0xa98]
mov dword [ebp - 0xa9c], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0xa9c]
push edx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x178
call fcn.00405f40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9c4]
call fcn.00402bb0
lea eax, [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xa54]
add ecx, 0x194
call fcn.00405f40
lea ecx, [ebp + 0x28]
push ecx
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1b0
call fcn.00480d10
push 0xa
push 0
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1f4
call fcn.00402bd0
push eax
call fcn.004c1554
add esp, 0xc
mov ecx, dword [ebp - 0xa54]
mov dword [ecx + 0x248], eax
mov dword [ecx + 0x24c], edx
mov edx, dword [ebp - 0xa54]
mov al, byte [ebp + 0x50]
mov byte [edx + 0x290], al
mov ecx, dword [ebp - 0xa54]
push 0
push 0x20000
mov edx, dword [ecx + 0x24c]
push edx
mov eax, dword [ecx + 0x248]
push eax
call fcn.004c1600
mov ecx, dword [ebp - 0xa54]
mov dword [ecx + 0x250], eax
mov edx, dword [ebp - 0xa54]
mov dword [ebp - 0xaa0], edx
mov eax, dword [ebp - 0xaa0]
mov ecx, dword [ebp - 0xaa0]
mov edx, dword [eax + 0x248]
or edx, dword [ecx + 0x24c]
jne 0x47f447
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x9c8], eax
mov ecx, dword [ebp - 0x9c8]
push ecx
call fcn.004c0415
add esp, 4
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x9cc], edx
mov eax, dword [ebp - 0x9cc]
push eax
call fcn.004c0415
add esp, 4
mov ecx, dword [ebp - 0xa54]
mov dword [ecx + 0x298], 0
push str._result_:true
mov ecx, dword [ebp + 8]
call fcn.00480c70
mov edx, dword [ebp - 0xa50]
or edx, 1
mov dword [ebp - 0xa50], edx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.0047db70
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.00402bb0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x28]
call fcn.00480cf0
mov eax, dword [ebp + 8]
jmp 0x47fa0a
mov eax, dword [ebp - 0xa54]
push 0
push 0x20000
mov ecx, dword [eax + 0x24c]
push ecx
mov edx, dword [eax + 0x248]
push edx
call fcn.004c1580
mov dword [ebp - 0xaa8], eax
mov dword [ebp - 0xaa4], edx
mov eax, dword [ebp - 0xaa8]
or eax, dword [ebp - 0xaa4]
je 0x47f49c
mov ecx, dword [ebp - 0xa54]
mov edx, dword [ecx + 0x250]
add edx, 1
mov eax, dword [ebp - 0xa54]
mov dword [eax + 0x250], edx
mov ecx, dword [ebp - 0xa54]
cmp dword [ecx + 0x250], 0
jne 0x47f4b0
jmp 0x47f6dc
movzx edx, byte [ebp + 0x50]
test edx, edx
je 0x47f618
call fcn.0047fa30
mov dword [ebp - 0x8e0], eax
mov ecx, 0x521d60
call fcn.00480e10
mov dword [ebp - 0x8dc], eax
cmp dword [ebp - 0x8dc], 0
jne 0x47f4ec
mov dword [ebp - 0xaac], 0
jmp 0x47f562
mov eax, dword [ebp - 0x8dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x8d8], eax
cmp dword [ebp - 0x8d8], 0x3fffffff
jle 0x47f51a
mov dword [ebp - 0xab0], 0
jmp 0x47f556
mov eax, dword [ebp - 0x8d8]
shl eax, 1
call fcn.004c1e40
mov dword [ebp - 0xab4], esp
mov ecx, dword [ebp - 0x8e0]
push ecx
mov edx, dword [ebp - 0x8d8]
shl edx, 1
push edx
mov eax, dword [ebp - 0x8dc]
push eax
mov ecx, dword [ebp - 0xab4]
push ecx
call fcn.0047fa40
mov dword [ebp - 0xab0], eax
mov edx, dword [ebp - 0xab0]
mov dword [ebp - 0xaac], edx
mov ecx, 0x5219e8
call fcn.00480e10
mov dword [ebp - 0x8dc], eax
cmp dword [ebp - 0x8dc], 0
jne 0x47f587
mov dword [ebp - 0xab8], 0
jmp 0x47f5fd
mov eax, dword [ebp - 0x8dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x8d8], eax
cmp dword [ebp - 0x8d8], 0x3fffffff
jle 0x47f5b5
mov dword [ebp - 0xabc], 0
jmp 0x47f5f1
mov eax, dword [ebp - 0x8d8]
shl eax, 1
call fcn.004c1e40
mov dword [ebp - 0xac0], esp
mov ecx, dword [ebp - 0x8e0]
push ecx
mov edx, dword [ebp - 0x8d8]
shl edx, 1
push edx
mov eax, dword [ebp - 0x8dc]
push eax
mov ecx, dword [ebp - 0xac0]
push ecx
call fcn.0047fa40
mov dword [ebp - 0xabc], eax
mov edx, dword [ebp - 0xabc]
mov dword [ebp - 0xab8], edx
push 0x2bc200
mov eax, dword [ebp - 0xaac]
push eax
mov ecx, dword [ebp - 0xab8]
push ecx
call fcn.004107a0
add esp, 0xc
mov dword [ebp - 0x8e8], 0
jmp 0x47f633
mov edx, dword [ebp - 0x8e8]
add edx, 1
mov dword [ebp - 0x8e8], edx
mov eax, dword [ebp - 0x8e8]
cmp eax, dword [ebp + 0x44]
jae 0x47f682
mov ecx, dword [ebp - 0x8e8]
mov edx, dword [ebp - 0x14]
lea eax, [edx + ecx*4]
push eax
push 0
mov ecx, dword [ebp - 0xa54]
add ecx, 0x140
push ecx
push 0x4799e0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x8e8]
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + edx*4], eax
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x47f624
push 0xffffffffffffffff
push 1
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x8ec], 0
jmp 0x47f6b2
mov ecx, dword [ebp - 0x8ec]
add ecx, 1
mov dword [ebp - 0x8ec], ecx
mov edx, dword [ebp - 0x8ec]
cmp edx, dword [ebp + 0x44]
jge 0x47f6d5
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x47f6a3
mov byte [0x521b95], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x9d0], eax
mov ecx, dword [ebp - 0x9d0]
push ecx
call fcn.004c0415
add esp, 4
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x9d4], edx
mov eax, dword [ebp - 0x9d4]
push eax
call fcn.004c0415
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
xor ecx, ecx
mov word [ebp - 0x8d4], cx
push 0x7fe
push 0
lea edx, [ebp - 0x8d2]
push edx
call fcn.004bfe20
add esp, 0xc
push 0x4f2c04
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1b0
call fcn.00480e10
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004c126a
add esp, 0xc
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x8f0], 0
jmp 0x47f78b
mov ecx, dword [ebp - 0x8f0]
add ecx, 1
mov dword [ebp - 0x8f0], ecx
mov edx, dword [ebp - 0xa54]
mov eax, dword [ebp - 0x8f0]
cmp eax, dword [edx + 0x250]
jge 0x47f9a8
push 0xa
push 0x400
lea ecx, [ebp - 0x8d4]
push ecx
mov edx, dword [ebp - 0x8f0]
push edx
call fcn.004c1e0b
add esp, 0x10
push 0x4f2c38
push str.chunk
lea eax, [ebp - 0x8d4]
push eax
mov ecx, dword [ebp - 0xa54]
add ecx, 0x1b0
push ecx
lea edx, [ebp - 0x9f0]
push edx
call fcn.00485c90
add esp, 0xc
mov dword [ebp - 0xac4], eax
mov eax, dword [ebp - 0xac4]
mov dword [ebp - 0xac8], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0xac8]
push ecx
lea edx, [ebp - 0xa0c]
push edx
call fcn.00485c90
add esp, 0xc
mov dword [ebp - 0xacc], eax
mov eax, dword [ebp - 0xacc]
mov dword [ebp - 0xad0], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0xad0]
call fcn.00480e10
push eax
lea ecx, [ebp - 0x1c]
push ecx
call fcn.004c126a
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xa0c]
call fcn.00480cf0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9f0]
call fcn.00480cf0
cmp dword [ebp - 0x1c], 0
jne 0x47f870
jmp 0x47f77c
push 2
push 0
mov edx, dword [ebp - 0x1c]
push edx
call fcn.004c1c90
add esp, 0xc
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
push eax
call fcn.004c1b98
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.004c1935
add esp, 4
mov edx, dword [ebp - 0x28]
push edx
call fcn.004c0518
add esp, 4
mov dword [ebp - 0xa10], eax
mov eax, dword [ebp - 0xa10]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x28]
push edx
push 1
mov eax, dword [ebp - 0x24]
push eax
call fcn.004c1918
add esp, 0x10
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x28]
push edx
push 1
mov eax, dword [ebp - 0x24]
push eax
call fcn.004c110b
add esp, 0x10
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xa14], ecx
mov edx, dword [ebp - 0xa14]
push edx
call fcn.004c0415
add esp, 4
mov eax, dword [ebp - 0x1c]
push eax
call fcn.004c0f2d
add esp, 4
push str.chunk
lea ecx, [ebp - 0x8d4]
push ecx
mov edx, dword [ebp - 0xa54]
add edx, 0x1b0
push edx
lea eax, [ebp - 0xa30]
push eax
call fcn.00485c90
add esp, 0xc
mov dword [ebp - 0xad4], eax
mov ecx, dword [ebp - 0xad4]
mov dword [ebp - 0xad8], ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0xad8]
push edx
lea eax, [ebp - 0xa4c]
push eax
call fcn.00485c90
add esp, 0xc
mov dword [ebp - 0xadc], eax
mov ecx, dword [ebp - 0xadc]
mov dword [ebp - 0xae0], ecx
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xae0]
call fcn.00480e10
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xa4c]
call fcn.00480cf0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa30]
call fcn.00480cf0
jmp 0x47f77c
mov edx, dword [ebp - 0x18]
push edx
call fcn.004c0f2d
add esp, 4
mov eax, dword [ebp - 0xa54]
mov dword [eax + 0x298], 0
push str._result_:true
mov ecx, dword [ebp + 8]
call fcn.00480c70
mov ecx, dword [ebp - 0xa50]
or ecx, 1
mov dword [ebp - 0xa50], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcc]
call fcn.0047db70
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.00402bb0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x28]
call fcn.00480cf0
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xae8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004be1d6
mov esp, ebp
pop ebp
ret 0x4c