Function at 0x403420
Capabilities:
Copy file
Create directory
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4437c6
mov eax, dword fs:[0]
push eax
sub esp, 0x238
mov eax, dword [0x4513a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1a4], ecx
push str.drivers_back
mov eax, dword [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x64]
push ecx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 4], 0
push 0x44a040
mov edx, dword [ebp - 0x1a4]
push edx
lea eax, [ebp - 0x80]
push eax
call fcn.0040b570
add esp, 0xc
mov byte [ebp - 4], 1
push str..sys
lea ecx, [ebp - 0x2c]
call fcn.0040a290
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x64]
call fcn.0040a370
push eax
lea ecx, [ebp - 0x80]
call fcn.0040a370
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push 0
lea ecx, [ebp - 0x80]
call fcn.0040a370
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea ecx, [ebp - 0x9c]
call fcn.0040a210
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x48]
call fcn.0040a210
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x1a4]
cmp dword [ecx + 0x100], 0
je 0x403873
push str.x86
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0xb8]
push eax
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x1a8], eax
mov ecx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1ac], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1ac]
push edx
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xb8]
call fcn.0040a2d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xbc], esp
lea eax, [ebp - 0x2c]
push eax
call fcn.0040a240
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0x1b4], ecx
mov byte [ebp - 4], 6
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc0], esp
lea edx, [ebp - 0x80]
push edx
call fcn.0040a240
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1bc], eax
mov byte [ebp - 4], 7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc4], esp
lea edx, [ebp - 0x9c]
push edx
call fcn.0040a240
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 4
call fcn.00411870
add esp, 0x54
mov eax, dword [ebp - 0x1a4]
cmp dword [eax + 0xe0], 0x3c
jbe 0x4036a6
push str.x86win7
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0xe0]
push edx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c8], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1c8]
push ecx
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe0]
call fcn.0040a2d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe4], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.0040a240
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 4], 9
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe8], esp
lea edx, [ebp - 0x80]
push edx
call fcn.0040a240
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x1d8], eax
mov byte [ebp - 4], 0xa
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xec], esp
lea edx, [ebp - 0x9c]
push edx
call fcn.0040a240
mov dword [ebp - 0x1dc], eax
mov byte [ebp - 4], 4
call fcn.00411870
add esp, 0x54
jmp 0x403772
push str.x86winxp
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x1e0], eax
mov edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e4], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x1e4]
push eax
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x108]
call fcn.0040a2d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10c], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.0040a240
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1ec], eax
mov byte [ebp - 4], 0xc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x110], esp
lea edx, [ebp - 0x80]
push edx
call fcn.0040a240
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 4], 0xd
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x114], esp
lea edx, [ebp - 0x9c]
push edx
call fcn.0040a240
mov dword [ebp - 0x1f8], eax
mov byte [ebp - 4], 4
call fcn.00411870
add esp, 0x54
push str.winxp
mov ecx, dword [ebp - 0x1a4]
add ecx, 0x54
call fcn.0040a370
push eax
call fcn.00421355
add esp, 8
test eax, eax
je 0x4037b6
push str.win7
mov ecx, dword [ebp - 0x1a4]
add ecx, 0x54
call fcn.0040a370
push eax
call fcn.00421355
add esp, 8
test eax, eax
jne 0x40386e
push 0x44a0ac
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x130]
push ecx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x1fc], eax
mov edx, dword [ebp - 0x1fc]
mov dword [ebp - 0x200], edx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x200]
push eax
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x130]
call fcn.0040a2d0
push str.BDMWrench.sys
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x14c]
push edx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x208]
push ecx
lea ecx, [ebp - 0x48]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x14c]
call fcn.0040a2d0
push 0
lea ecx, [ebp - 0x48]
call fcn.0040a370
push eax
lea ecx, [ebp - 0x9c]
call fcn.0040a370
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x403a1e
push str.x64
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x168]
push eax
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x210], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x210]
push edx
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x168]
call fcn.0040a2d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x16c], esp
lea eax, [ebp - 0x2c]
push eax
call fcn.0040a240
mov dword [ebp - 0x214], eax
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x218], ecx
mov byte [ebp - 4], 0x11
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x170], esp
lea edx, [ebp - 0x80]
push edx
call fcn.0040a240
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x220], eax
mov byte [ebp - 4], 0x12
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x174], esp
lea edx, [ebp - 0x9c]
push edx
call fcn.0040a240
mov dword [ebp - 0x224], eax
mov byte [ebp - 4], 4
call fcn.00411870
add esp, 0x54
mov eax, dword [ebp - 0x1a4]
cmp dword [eax + 0xe0], 0x3c
jb 0x403a1e
push str.x64win7
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x190]
push edx
call fcn.0040b570
add esp, 0xc
mov dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x22c]
push ecx
lea ecx, [ebp - 0x9c]
call fcn.0040a2f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x190]
call fcn.0040a2d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x194], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.0040a240
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x234], eax
mov byte [ebp - 4], 0x14
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x198], esp
lea edx, [ebp - 0x80]
push edx
call fcn.0040a240
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x23c], eax
mov byte [ebp - 4], 0x15
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x19c], esp
lea edx, [ebp - 0x9c]
push edx
call fcn.0040a240
mov dword [ebp - 0x240], eax
mov byte [ebp - 4], 4
call fcn.00411870
add esp, 0x54
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1a0], esp
lea eax, [ebp - 0x64]
push eax
call fcn.0040a240
mov dword [ebp - 0x244], eax
call fcn.00411250
add esp, 0x1c
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x48]
call fcn.0040a2d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9c]
call fcn.0040a2d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.0040a2d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.0040a2d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.0040a2d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004208a1
mov esp, ebp
pop ebp
ret