Function at 0x446530
Capabilities:
Check if file exists
Delete file
Get common file path
Get disk information
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x884
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], 0x8c004006
mov word [ebp - 0x674], 4
mov byte [ebp - 0x25], 1
mov byte [ebp - 0x459], 2
mov word [ebp - 0x24], 0
cmp dword [0x48a7ec], 0
je 0x446578
movzx eax, word [ebp - 0x24]
or eax, 1
mov word [ebp - 0x24], ax
cmp dword [0x48a7f0], 0
je 0x44658c
movzx ecx, word [ebp - 0x24]
or ecx, 2
mov word [ebp - 0x24], cx
cmp dword [0x48a7f4], 0
je 0x4465a0
movzx edx, word [ebp - 0x24]
or edx, 4
mov word [ebp - 0x24], dx
cmp dword [0x48a808], 0
je 0x4465b4
movzx eax, word [ebp - 0x24]
or eax, 8
mov word [ebp - 0x24], ax
cmp dword [0x48a7f8], 0
je 0x4465c8
movzx ecx, word [ebp - 0x24]
or ecx, 0x10
mov word [ebp - 0x24], cx
cmp dword [0x48a7fc], 0
je 0x4465dc
movzx edx, word [ebp - 0x24]
or edx, 0x20
mov word [ebp - 0x24], dx
mov word [ebp - 0x458], 0
push 0x206
push 0
lea eax, [ebp - 0x456]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x668], 0
push 0x206
push 0
lea ecx, [ebp - 0x666]
push ecx
call fcn.00415680
add esp, 0xc
push 0x4880d0
push 0x476e58
push 0x208
push 0x104
lea edx, [ebp - 0x458]
push edx
call fcn.004157ac
add esp, 0x14
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
lea ecx, [ebp - 0x458]
push ecx
call fcn.00414d31
add esp, 4
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
jbe 0x4466c7
mov edx, dword [ebp - 0x244]
movzx eax, word [ebp + edx*2 - 0x45a]
cmp eax, 0x5c
je 0x4466a2
lea ecx, [ebp - 0x458]
push ecx
push 0x476e60
push 0x208
push 0x104
lea edx, [ebp - 0x668]
push edx
call fcn.004157ac
add esp, 0x14
jmp 0x4466c7
lea eax, [ebp - 0x458]
push eax
push 0x476e68
push 0x208
push 0x104
lea ecx, [ebp - 0x668]
push ecx
call fcn.004157ac
add esp, 0x14
lea edx, [ebp - 0x668]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 2
je 0x446791
cmp dword [ebp - 0x884], 3
je 0x44670a
cmp dword [ebp - 0x884], 4
je 0x446781
jmp 0x44679f
mov word [ebp - 0x880], 0
push 0x206
push 0
lea ecx, [ebp - 0x87e]
push ecx
call fcn.00415680
add esp, 0xc
push 0x104
lea edx, [ebp - 0x880]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
movzx eax, word [ebp - 0x880]
movzx ecx, word [0x4880d0]
sub eax, ecx
mov dword [ebp - 0x678], eax
je 0x446765
cmp dword [ebp - 0x678], 0xffffffe0
je 0x446765
cmp dword [ebp - 0x678], 0x20
jne 0x446772
movzx edx, word [ebp - 0x24]
or edx, 0x40
mov word [ebp - 0x24], dx
jmp 0x44677f
movzx eax, word [ebp - 0x24]
or eax, 0x80
mov word [ebp - 0x24], ax
jmp 0x44679f
movzx ecx, word [ebp - 0x24]
or ecx, 0xc0
mov word [ebp - 0x24], cx
jmp 0x44679f
movzx edx, word [ebp - 0x24]
or edx, 0x100
mov word [ebp - 0x24], dx
push 1
push 0x1a
lea eax, [ebp - 0x238]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x4467bd
xor eax, eax
jmp 0x446e0f
lea ecx, [ebp - 0x238]
push ecx
call fcn.00414d31
add esp, 4
movzx edx, word [ebp + eax*2 - 0x23a]
cmp edx, 0x5c
jne 0x446800
lea eax, [ebp - 0x238]
push eax
push 0x476e70
push 0x208
push 0x104
lea ecx, [ebp - 0x238]
push ecx
call fcn.004157ac
add esp, 0x14
jmp 0x446825
lea edx, [ebp - 0x238]
push edx
push str._sTencentQQDR
push 0x208
push 0x104
lea eax, [ebp - 0x238]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x238]
push ecx
call fcn.00437cb0
add esp, 4
lea edx, [ebp - 0x238]
push edx
push str._s_st072500003.dr
push 0x208
push 0x104
lea eax, [ebp - 0x238]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x238]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x446877
lea edx, [ebp - 0x238]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x476ed8
lea eax, [ebp - 0x238]
push eax
call fcn.00414e0d
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4468b1
push 0x40
push 0x476ee0
push 0x476eec
push 0
call fcn.00458ce0
add esp, 0x10
xor eax, eax
jmp 0x446e0f
mov ecx, dword [ebp - 0x14]
push ecx
call sub.WS2_32.dll_htonl
mov dword [ebp - 0x14], eax
mov dx, word [ebp - 0x674]
push edx
call sub.WS2_32.dll_htons
mov word [ebp - 0x674], ax
mov ax, word [ebp - 0x24]
push eax
call sub.WS2_32.dll_htons
mov word [ebp - 0x24], ax
mov dword [ebp - 0x2c], 0xbc005001
mov word [ebp - 0xc], 4
mov byte [ebp - 0x19], 6
mov byte [ebp - 0x23d], 2
mov word [ebp - 8], 0
cmp dword [0x48a804], 0
jne 0x44690c
mov word [ebp - 8], 1
cmp dword [0x48a804], 1
jne 0x44691b
mov word [ebp - 8], 2
cmp dword [0x48a804], 2
jne 0x44692a
mov word [ebp - 8], 3
mov ecx, dword [ebp - 0x2c]
push ecx
call sub.WS2_32.dll_htonl
mov dword [ebp - 0x2c], eax
mov dx, word [ebp - 0xc]
push edx
call sub.WS2_32.dll_htons
mov word [ebp - 0xc], ax
mov ax, word [ebp - 8]
push eax
call sub.WS2_32.dll_htons
mov word [ebp - 8], ax
mov dword [ebp - 0x670], 0x94002001
mov word [ebp - 0x23c], 8
mov byte [ebp - 0x45a], 1
mov byte [ebp - 1], 2
mov word [ebp - 0x248], 0
mov byte [ebp - 0x669], 2
mov byte [ebp - 0xd], 2
mov word [ebp - 0x18], 0
cmp dword [0x489bac], 0
je 0x4469a6
movzx ecx, word [ebp - 0x248]
or ecx, 1
mov word [ebp - 0x248], cx
jmp 0x4469b7
movzx edx, word [ebp - 0x248]
or edx, 2
mov word [ebp - 0x248], dx
cmp dword [0x489bac], 0
jne 0x4469f4
cmp dword [0x48a7ec], 0
jne 0x4469da
movzx eax, word [ebp - 0x248]
or eax, 4
mov word [ebp - 0x248], ax
cmp dword [0x48a7ec], 1
jne 0x4469f4
movzx ecx, word [ebp - 0x248]
or ecx, 8
mov word [ebp - 0x248], cx
cmp dword [0x4822f0], 0
je 0x446a10
movzx edx, word [ebp - 0x248]
or edx, 0x10
mov word [ebp - 0x248], dx
jmp 0x446a21
movzx eax, word [ebp - 0x248]
or eax, 0x20
mov word [ebp - 0x248], ax
cmp dword [0x4822f0], 0
jne 0x446a61
cmp dword [0x48a82c], 0
jne 0x446a44
movzx ecx, word [ebp - 0x248]
or ecx, 0x40
mov word [ebp - 0x248], cx
cmp dword [0x48a82c], 1
jne 0x446a61
movzx edx, word [ebp - 0x248]
or edx, 0x80
mov word [ebp - 0x248], dx
cmp dword [0x48a86c], 0
je 0x446a7f
movzx eax, word [ebp - 0x248]
or eax, 0x100
mov word [ebp - 0x248], ax
jmp 0x446a93
movzx ecx, word [ebp - 0x248]
or ecx, 0x200
mov word [ebp - 0x248], cx
cmp dword [0x48a86c], 0
jne 0x446ad5
cmp dword [0x48a830], 0
jne 0x446ab9
movzx edx, word [ebp - 0x248]
or edx, 0x400
mov word [ebp - 0x248], dx
cmp dword [0x48a830], 1
jne 0x446ad5
movzx eax, word [ebp - 0x248]
or eax, 0x800
mov word [ebp - 0x248], ax
cmp dword [0x48a868], 0
jne 0x446ae7
cmp dword [0x48a86c], 0
je 0x446af0
cmp dword [0x48a868], 0
je 0x446b04
movzx ecx, word [ebp - 0x248]
or ecx, 0x1000
mov word [ebp - 0x248], cx
cmp dword [0x48a868], 0
jne 0x446b2a
cmp dword [0x48a86c], 0
je 0x446b2a
movzx edx, word [ebp - 0x248]
or edx, 0x2000
mov word [ebp - 0x248], dx
cmp dword [0x48a868], 0
jne 0x446b75
cmp dword [0x48a86c], 0
je 0x446b75
cmp dword [0x48a834], 0
jne 0x446b58
movzx eax, word [ebp - 0x248]
or eax, 0x4000
mov word [ebp - 0x248], ax
cmp dword [0x48a834], 1
jne 0x446b75
movzx ecx, word [ebp - 0x248]
or ecx, 0x8000
mov word [ebp - 0x248], cx
mov edx, dword [ebp - 0x670]
push edx
call sub.WS2_32.dll_htonl
mov dword [ebp - 0x670], eax
mov ax, word [ebp - 0x23c]
push eax
call sub.WS2_32.dll_htons
mov word [ebp - 0x23c], ax
mov cx, word [ebp - 0x248]
push ecx
call sub.WS2_32.dll_htons
mov word [ebp - 0x248], ax
cmp dword [0x4822f4], 0
je 0x446bc5
movzx edx, word [ebp - 0x18]
or edx, 1
mov word [ebp - 0x18], dx
jmp 0x446bd0
movzx eax, word [ebp - 0x18]
or eax, 2
mov word [ebp - 0x18], ax
cmp dword [0x4822f4], 0
jne 0x446c01
cmp dword [0x48a838], 0
jne 0x446bed
movzx ecx, word [ebp - 0x18]
or ecx, 4
mov word [ebp - 0x18], cx
cmp dword [0x48a838], 1
jne 0x446c01
movzx edx, word [ebp - 0x18]
or edx, 8
mov word [ebp - 0x18], dx
cmp dword [0x48a86c], 0
jne 0x446c17
movzx eax, word [ebp - 0x18]
or eax, 0x10
mov word [ebp - 0x18], ax
jmp 0x446c34
cmp dword [0x48a86c], 0
je 0x446c34
cmp dword [0x48a868], 0
jne 0x446c34
movzx ecx, word [ebp - 0x18]
or ecx, 0x20
mov word [ebp - 0x18], cx
cmp dword [0x48a86c], 0
je 0x446c70
cmp dword [0x48a868], 0
jne 0x446c70
cmp dword [0x48a83c], 0
jne 0x446c5a
movzx edx, word [ebp - 0x18]
or edx, 0x40
mov word [ebp - 0x18], dx
cmp dword [0x48a83c], 1
jne 0x446c70
movzx eax, word [ebp - 0x18]
or eax, 0x80
mov word [ebp - 0x18], ax
mov cx, word [ebp - 0x18]
push ecx
call sub.WS2_32.dll_htons
mov word [ebp - 0x18], ax
mov edx, dword [ebp - 0x20]
push edx
push 1
push 4
lea eax, [ebp - 0x14]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 2
lea edx, [ebp - 0x674]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 1
lea ecx, [ebp - 0x25]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 1
lea eax, [ebp - 0x459]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 2
lea edx, [ebp - 0x24]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 4
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 2
lea eax, [ebp - 0xc]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 1
lea edx, [ebp - 0x19]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 1
lea ecx, [ebp - 0x23d]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 2
lea eax, [ebp - 8]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 4
lea edx, [ebp - 0x670]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 2
lea ecx, [ebp - 0x23c]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 1
lea eax, [ebp - 0x45a]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 1
lea edx, [ebp - 1]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 2
lea ecx, [ebp - 0x248]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
push 1
push 1
lea eax, [ebp - 0x669]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x20]
push ecx
push 1
push 1
lea edx, [ebp - 0xd]
push edx
call fcn.004150b3
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
push 1
push 2
lea ecx, [ebp - 0x18]
push ecx
call fcn.004150b3
add esp, 0x10
mov edx, dword [ebp - 0x20]
push edx
call fcn.00414e92
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0x30]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret