joyce8/EMBER2024-capa huggingface dataset:
Function at 0x418bf0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 4]
fld qword [ecx]
sub esp, 0x24
lea eax, [esp]
push eax
sub esp, 8
fstp qword [esp]
call fcn.004189d0
add esp, 0xc
test al, al
je 0x418c5c
mov eax, dword [esp + 0x2c]
movzx edx, word [esp + 0x14]
movzx ecx, word [esp + 0x10]
mov word [eax], dx
mov edx, dword [esp + 0x18]
add edx, 0xffffffff
mov word [eax + 2], cx
movzx ecx, word [esp + 0xc]
mov word [eax + 4], dx
movzx edx, word [esp + 8]
mov word [eax + 6], cx
movzx ecx, word [esp + 4]
mov word [eax + 8], dx
movzx edx, word [esp]
mov word [eax + 0xa], cx
mov word [eax + 0xc], dx
mov word [eax + 0xe], 0
add esp, 0x24
ret
mov ecx, dword [esp + 0x2c]
add esp, 0x24
jmp fcn.00419910

Function at 0x419d40
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x478aab
mov eax, dword fs:[0]
push eax
mov eax, 0x18a4
call fcn.00465060
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x18a0], eax
push esi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x18ac]
mov dword fs:[0], eax
mov esi, dword [esp + 0x18bc]
lea ecx, [esp + 8]
call fcn.00431760
lea ecx, [esp + 8]
mov dword [esp + 0x18b4], 0
call fcn.00431790
test al, al
jne 0x419dbb
lea edx, [esp + 0x8a4]
push edx
push 0x800
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x419ddf
lea eax, [esp + 0xa0]
push eax
push 0x800
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [esp + 0xa0]
push ecx
mov ecx, esi
call fcn.00406d40
jmp 0x419dee
lea edx, [esp + 0x8a4]
push edx
mov ecx, esi
call fcn.00407a50
lea ecx, [esp + 8]
mov dword [esp + 0x18b4], 0xffffffff
call fcn.00431780
mov ecx, dword [esp + 0x18ac]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x18a0]
xor ecx, esp
call fcn.0046255c
add esp, 0x18b0
ret

Function at 0x419e30
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x478aab
mov eax, dword fs:[0]
push eax
mov eax, 0x18a4
call fcn.00465060
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x18a0], eax
push esi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x18ac]
mov dword fs:[0], eax
mov esi, dword [esp + 0x18bc]
lea ecx, [esp + 8]
call fcn.00431760
lea ecx, [esp + 8]
mov dword [esp + 0x18b4], 0
call fcn.00431790
test al, al
je 0x419eba
lea eax, [esp + 0xa0]
push eax
push 0x800
call fcn.0041e190
add esp, 8
lea ecx, [esp + 0xa0]
push ecx
mov ecx, esi
call fcn.00406d40
jmp 0x419f11
lea edx, [esp + 0x8a4]
push edx
push 0x800
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x419f02
lea eax, [esp + 0xa0]
push eax
push 0x800
call fcn.0041e190
add esp, 8
test eax, eax
jne 0x419ef1
mov byte [esp + 0xa0], al
lea ecx, [esp + 0xa0]
push ecx
mov ecx, esi
call fcn.00406d40
jmp 0x419f11
lea edx, [esp + 0x8a4]
push edx
mov ecx, esi
call fcn.00407a50
lea ecx, [esp + 8]
mov dword [esp + 0x18b4], 0xffffffff
call fcn.00431780
mov ecx, dword [esp + 0x18ac]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x18a0]
xor ecx, esp
call fcn.0046255c
add esp, 0x18b0
ret
Function at 0x419f50
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x478b01
mov eax, dword fs:[0]
push eax
sub esp, 0x1ac
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x1a8], eax
push ebx
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x1bc]
mov dword fs:[0], eax
mov esi, dword [esp + 0x1cc]
mov edi, dword [esp + 0x1d0]
lea ecx, [esp + 0x10]
call fcn.00406b00
lea ecx, [esp + 0x98]
mov dword [esp + 0x1c4], 0
call fcn.00406b00
push esi
lea ecx, [esp + 0x14]
mov byte [esp + 0x1c8], 1
call fcn.00407ae0
push edi
lea ecx, [esp + 0x9c]
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x18]
call fcn.004078d0
push 0x5c
push 0x2f
lea ecx, [esp + 0xa0]
call fcn.004078d0
lea ecx, [esp + 0x120]
call fcn.00431760
lea ecx, [esp + 0x120]
mov byte [esp + 0x1c4], 2
call fcn.00431790
test al, al
je 0x41a044
xor eax, eax
cmp byte [esp + 0x1d4], al
lea ecx, [esp + 0x98]
setne al
push eax
call fcn.004072a0
push eax
lea ecx, [esp + 0x18]
call fcn.004072a0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
jmp 0x41a06e
xor ecx, ecx
cmp byte [esp + 0x1d4], cl
setne cl
push ecx
lea ecx, [esp + 0x9c]
call fcn.00407a60
push eax
lea ecx, [esp + 0x18]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
lea ecx, [esp + 0x120]
setne bl
mov byte [esp + 0x1c4], 1
call fcn.00431780
lea ecx, [esp + 0x98]
mov byte [esp + 0x1c4], 0
call fcn.00406bc0
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c4], 0xffffffff
call fcn.00406bc0
mov al, bl
mov ecx, dword [esp + 0x1bc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a8]
xor ecx, esp
call fcn.0046255c
add esp, 0x1b8
ret
Function at 0x41a1d0
Capabilities:
Check if file exists
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x478b5c
mov eax, dword fs:[0]
push eax
sub esp, 0x234
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x230], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov edi, dword [esp + 0x258]
mov esi, dword [esp + 0x25c]
lea ecx, [esp + 0x14]
call fcn.00406b00
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x254], 0
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x1c]
call fcn.004078d0
lea ecx, [esp + 0x1ac]
call fcn.00431760
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x250], 1
call fcn.00431790
test al, al
lea ecx, [esp + 0x14]
je 0x41a281
call fcn.004072a0
push eax
call fcn.0041e120
add esp, 4
test eax, eax
jmp 0x41a39e
call fcn.004079e0
cmp eax, 0x104
jle 0x41a350
lea ecx, [esp + 0x124]
call fcn.00406b00
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x258], 2
call fcn.00419c10
add esp, 8
lea ecx, [esp + 0x9c]
call fcn.00406b00
push 0x4b2924
lea ecx, [esp + 0xa0]
mov byte [esp + 0x254], 3
call fcn.00407ab0
lea ecx, [esp + 0x124]
call fcn.00407530
push eax
lea ecx, [esp + 0xa0]
call fcn.00407ab0
lea ecx, [esp + 0x9c]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
test esi, esi
jne 0x41a323
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x41a321
mov esi, 1
test esi, esi
lea ecx, [esp + 0x9c]
setne bl
mov byte [esp + 0x250], 2
call fcn.00406bc0
lea ecx, [esp + 0x124]
mov byte [esp + 0x250], 1
call fcn.00406bc0
jmp 0x41a3a1
lea ecx, [esp + 0x14]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
test ebp, ebp
jne 0x41a39e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
mov edi, eax
je 0x41a392
push edi
mov ecx, esi
call fcn.00431a20
mov ebx, dword [esi]
lea ecx, [esp + 0x14]
call fcn.00407530
mov edx, dword [ebx + 0x28]
push eax
push str.failedToDeleteFilepath
mov ecx, esi
call edx
cmp edi, 2
jne 0x41a39c
mov ebp, 1
test ebp, ebp
setne bl
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x250], 0
call fcn.00431780
lea ecx, [esp + 0x14]
mov dword [esp + 0x250], 0xffffffff
call fcn.00406bc0
mov al, bl
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.0046255c
add esp, 0x240
ret
Function at 0x41a400
Capabilities:
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x478bb1
mov eax, dword fs:[0]
push eax
sub esp, 0x1ac
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x1a8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x1c0]
mov dword fs:[0], eax
mov edi, dword [esp + 0x1d0]
mov ebx, dword [esp + 0x1d8]
mov esi, dword [esp + 0x1d4]
mov ebp, dword [esp + 0x1dc]
mov dword [ebx], 0
mov ecx, edi
mov dword [esi], 0xffffffff
call fcn.004079e0
test eax, eax
jne 0x41a488
test ebp, ebp
je 0x41a481
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.GetAttributes:_filename_is_empty
mov ecx, ebp
call edx
xor al, al
jmp 0x41a5b7
lea ecx, [esp + 0x14]
call fcn.00406b00
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x1cc], 0
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x1c]
call fcn.004078d0
lea ecx, [esp + 0x14]
call fcn.004079e0
lea ecx, [esp + 0x124]
mov edi, eax
call fcn.00431760
cmp edi, 0x104
mov byte [esp + 0x1c8], 1
jge 0x41a510
lea ecx, [esp + 0x14]
call fcn.00407060
test al, al
jne 0x41a4f7
lea ecx, [esp + 0x124]
call fcn.00431790
test al, al
je 0x41a510
lea ecx, [esp + 0x14]
call fcn.004072a0
push eax
call fcn.0041e150
add esp, 4
mov dword [esi], eax
cmp eax, 0xffffffff
jmp 0x41a57d
test edi, edi
jle 0x41a568
lea ecx, [esp + 0x9c]
call fcn.00406b00
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x1d0], 2
call fcn.0041a0e0
add esp, 8
lea ecx, [esp + 0x9c]
call fcn.00406ec0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [esp + 0x9c]
mov dword [esi], eax
mov byte [esp + 0x1c8], 1
call fcn.00406bc0
jmp 0x41a57a
lea ecx, [esp + 0x14]
call fcn.00406ec0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esi], eax
cmp dword [esi], 0xffffffff
jne 0x41a587
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], eax
cmp dword [esi], 0xffffffff
lea ecx, [esp + 0x124]
setne bl
mov byte [esp + 0x1c8], 0
call fcn.00431780
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c8], 0xffffffff
call fcn.00406bc0
mov al, bl
mov ecx, dword [esp + 0x1c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1a8]
xor ecx, esp
call fcn.0046255c
add esp, 0x1b8
ret
Function at 0x41ac60
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x478c5c
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x1e8]
mov dword fs:[0], eax
mov esi, dword [esp + 0x1f8]
mov edi, dword [esp + 0x1fc]
lea ecx, [esp + 0x3c]
call fcn.00406b00
push esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x1f4], 0
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x44]
call fcn.004078d0
lea ecx, [esp + 0x14c]
call fcn.00431760
mov bl, 1
lea ecx, [esp + 0x14c]
mov byte [esp + 0x1f0], bl
call fcn.00431790
test al, al
lea ecx, [esp + 0x3c]
je 0x41ad0f
push 0
call fcn.004072a0
push eax
call fcn.0041e1b0
add esp, 8
jmp 0x41ad7f
call fcn.004079e0
test eax, eax
jle 0x41ad6d
lea ecx, [esp + 0xc4]
call fcn.00406b00
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x40]
push ecx
mov byte [esp + 0x1f8], 2
call fcn.0041a0e0
add esp, 8
push 0
lea ecx, [esp + 0xc8]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [esp + 0xc4]
mov esi, eax
mov byte [esp + 0x1f0], bl
call fcn.00406bc0
jmp 0x41ad81
push 0
lea ecx, [esp + 0x40]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, eax
test esi, esi
jne 0x41adcd
test edi, edi
je 0x41adcb
lea ecx, [esp + 0x14]
call fcn.004089c0
lea ecx, [esp + 0x14]
mov byte [esp + 0x1f0], 3
call fcn.00409ae0
mov ebp, dword [edi]
lea ecx, [esp + 0x14]
call fcn.0040a520
mov edx, dword [ebp + 0x28]
push eax
push str.errorMsg
mov ecx, edi
call edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x1f0], bl
call fcn.00408bf0
test esi, esi
lea ecx, [esp + 0x14c]
setne bl
mov byte [esp + 0x1f0], 0
call fcn.00431780
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f0], 0xffffffff
call fcn.00406bc0
mov al, bl
mov ecx, dword [esp + 0x1e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.0046255c
add esp, 0x1e0
ret
Function at 0x41ae30
Capabilities:
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x478cb1
mov eax, dword fs:[0]
push eax
sub esp, 0x1ac
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x1a8], eax
push ebx
push esi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov esi, dword [esp + 0x1c8]
lea ecx, [esp + 0xc]
call fcn.00406b00
push esi
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c4], 0
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x14]
call fcn.004078d0
lea ecx, [esp + 0x11c]
call fcn.00431760
mov bl, 1
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1c0], bl
call fcn.00431790
test al, al
lea ecx, [esp + 0xc]
je 0x41aedc
mov eax, dword [esp + 0x1cc]
push eax
call fcn.004072a0
push eax
call fcn.0041e1d0
add esp, 8
jmp 0x41af58
call fcn.004079e0
test eax, eax
jle 0x41af40
lea ecx, [esp + 0x94]
call fcn.00406b00
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x10]
push edx
mov byte [esp + 0x1c8], 2
call fcn.0041a0e0
mov eax, dword [esp + 0x1d4]
add esp, 8
push eax
lea ecx, [esp + 0x98]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [esp + 0x94]
mov esi, eax
mov byte [esp + 0x1c0], bl
call fcn.00406bc0
jmp 0x41af5a
mov ecx, dword [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x10]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov esi, eax
test esi, esi
lea ecx, [esp + 0x11c]
setne bl
mov byte [esp + 0x1c0], 0
call fcn.00431780
lea ecx, [esp + 0xc]
mov dword [esp + 0x1c0], 0xffffffff
call fcn.00406bc0
mov al, bl
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x1a8]
xor ecx, esp
call fcn.0046255c
add esp, 0x1b8
ret

Function at 0x41b0d0
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x479e48
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 4]
lea eax, [esp + 0xc]
push eax
xor edi, edi
push edx
mov dword [esp + 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
jne 0x41b17b
mov esi, dword [esp + 0x4c]
cmp esi, edi
je 0x41b163
lea ecx, [esp + 0x10]
call fcn.004089c0
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], edi
call fcn.00409ae0
mov edi, dword [esi]
lea ecx, [esp + 0x10]
call fcn.0040a520
push eax
mov eax, dword [edi + 0x10]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_get_file_size__64_
mov ecx, esi
call eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], 0xffffffff
call fcn.00408bf0
or eax, 0xffffffff
or edx, 0xffffffff
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x38
ret
mov ecx, dword [esp + 0xc]
push ecx
push eax
call fcn.0042c730
add esp, 8
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x38
ret
Function at 0x41b1a0
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x478cf6
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xdc]
mov eax, dword [esp + 0xe4]
xor ebp, ebp
cmp ebx, ebp
mov byte [eax], 0
je 0x41b2e2
cmp byte [ebx], 0
je 0x41b2e2
lea ecx, [esp + 0x44]
call fcn.00406b00
push ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0xd8], ebp
call fcn.00406d40
push 0x5c
push 0x2f
lea ecx, [esp + 0x4c]
call fcn.004078d0
mov esi, dword [esp + 0xe0]
push esi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0041a5e0
mov edi, eax
add esp, 0xc
cmp edi, ebp
je 0x41b2ce
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebp
mov ecx, dword [edi + 4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x41b2e9
test esi, esi
je 0x41b2b9
lea ecx, [esp + 0x1c]
call fcn.004089c0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 1
call fcn.00409ae0
mov ebp, dword [esi]
lea ecx, [esp + 0x1c]
call fcn.0040a520
mov edx, dword [ebp + 0x10]
push eax
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ebx
push str.filename
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_get_file_size__ANSI_
mov ecx, esi
call edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 0
call fcn.00408bf0
push 0
push edi
call fcn.00431ad0
mov eax, dword [edi]
mov edx, dword [eax]
add esp, 8
push 1
mov ecx, edi
call edx
lea ecx, [esp + 0x44]
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
xor eax, eax
jmp 0x41b36c
push 0
push edi
call fcn.00431ad0
mov eax, dword [edi]
mov edx, dword [eax]
add esp, 8
push 1
mov ecx, edi
call edx
cmp dword [esp + 0x14], 0
je 0x41b34c
test esi, esi
je 0x41b334
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.File_too_large_for_32_bits
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ebx
push str.filename
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_get_file_size.
mov ecx, esi
call edx
lea ecx, [esp + 0x44]
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
xor eax, eax
jmp 0x41b36c
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x44]
mov byte [eax], 1
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
mov eax, ebp
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret
Function at 0x41b390
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x478cf6
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xdc]
mov eax, dword [esp + 0xe4]
xor ebp, ebp
cmp ebx, ebp
mov byte [eax], 0
je 0x41b4d2
cmp word [ebx], bp
je 0x41b4d2
lea ecx, [esp + 0x44]
call fcn.00406b00
push ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0xd8], ebp
call fcn.00407a50
push 0x5c
push 0x2f
lea ecx, [esp + 0x4c]
call fcn.004078d0
mov esi, dword [esp + 0xe0]
push esi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0041a5e0
mov edi, eax
add esp, 0xc
cmp edi, ebp
je 0x41b4be
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebp
mov ecx, dword [edi + 4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x41b4d9
test esi, esi
je 0x41b4a9
lea ecx, [esp + 0x1c]
call fcn.004089c0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 1
call fcn.00409ae0
mov ebp, dword [esi]
lea ecx, [esp + 0x1c]
call fcn.0040a520
mov edx, dword [ebp + 0x10]
push eax
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ebx
push str.filename
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_get_file_size__Unicode_
mov ecx, esi
call edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 0
call fcn.00408bf0
push 0
push edi
call fcn.00431ad0
mov eax, dword [edi]
mov edx, dword [eax]
add esp, 8
push 1
mov ecx, edi
call edx
lea ecx, [esp + 0x44]
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
xor eax, eax
jmp 0x41b55c
push 0
push edi
call fcn.00431ad0
mov eax, dword [edi]
mov edx, dword [eax]
add esp, 8
push 1
mov ecx, edi
call edx
cmp dword [esp + 0x14], 0
je 0x41b53c
test esi, esi
je 0x41b524
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.File_too_large_for_32_bits
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ebx
push str.filename
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Failed_to_get_file_size
mov ecx, esi
call edx
lea ecx, [esp + 0x44]
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
xor eax, eax
jmp 0x41b55c
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x44]
mov byte [eax], 1
mov dword [esp + 0xd4], 0xffffffff
call fcn.00406bc0
mov eax, ebp
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret
Function at 0x41c990
Capabilities:
Move file

Disassembly:
push 0xffffffffffffffff
push 0x478ef2
mov eax, dword fs:[0]
push eax
sub esp, 0x2e4
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x2e0], eax
push ebp
push esi
push edi
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x2f4]
mov dword fs:[0], eax
mov esi, dword [esp + 0x304]
mov edi, dword [esp + 0x308]
mov ebp, dword [esp + 0x30c]
lea ecx, [esp + 0x38]
call fcn.00406b00
lea ecx, [esp + 0xc0]
mov dword [esp + 0x2fc], 0
call fcn.00406b00
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x300], 1
call fcn.00407ae0
push edi
lea ecx, [esp + 0xc4]
call fcn.00407ae0
push 0x5c
push 0x2f
lea ecx, [esp + 0x40]
call fcn.004078d0
push 0x5c
push 0x2f
lea ecx, [esp + 0xc8]
call fcn.004078d0
lea ecx, [esp + 0x258]
call fcn.00431760
lea ecx, [esp + 0x258]
mov byte [esp + 0x2fc], 2
call fcn.00431790
test al, al
je 0x41ca8b
lea ecx, [esp + 0xc0]
call fcn.004072a0
push eax
lea ecx, [esp + 0x3c]
call fcn.004072a0
push eax
call fcn.0041e130
add esp, 8
mov esi, eax
neg esi
sbb esi, esi
neg esi
jmp 0x41cb74
lea ecx, [esp + 0x38]
call fcn.004079e0
test eax, eax
jg 0x41cad2
lea ecx, [esp + 0xc0]
call fcn.004079e0
test eax, eax
jg 0x41cad2
lea ecx, [esp + 0xc0]
call fcn.00407a60
push eax
lea ecx, [esp + 0x3c]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov esi, eax
neg esi
sbb esi, esi
neg esi
jmp 0x41cb74
lea ecx, [esp + 0x1d0]
call fcn.00406b00
lea ecx, [esp + 0x148]
mov byte [esp + 0x2fc], 3
call fcn.00406b00
lea eax, [esp + 0x1d0]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x304], 4
call fcn.0041a0e0
lea edx, [esp + 0x150]
push edx
lea eax, [esp + 0xcc]
push eax
call fcn.0041a0e0
add esp, 0x10
lea ecx, [esp + 0x148]
call fcn.00407a60
push eax
lea ecx, [esp + 0x1d4]
call fcn.00407a60
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov esi, eax
neg esi
sbb esi, esi
lea ecx, [esp + 0x148]
neg esi
mov byte [esp + 0x2fc], 3
call fcn.00406bc0
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x2fc], 2
call fcn.00406bc0
test esi, esi
jne 0x41cc04
test ebp, ebp
je 0x41cbc4
lea ecx, [esp + 0x10]
call fcn.004089c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x2fc], 5
call fcn.00409ae0
mov esi, dword [ebp]
lea ecx, [esp + 0x10]
call fcn.0040a520
mov edx, dword [esi + 0x28]
push eax
push str.errorMsg
mov ecx, ebp
call edx
lea ecx, [esp + 0x10]
mov byte [esp + 0x2fc], 2
call fcn.00408bf0
lea ecx, [esp + 0x258]
mov byte [esp + 0x2fc], 1
call fcn.00431780
lea ecx, [esp + 0xc0]
mov byte [esp + 0x2fc], 0
call fcn.00406bc0
lea ecx, [esp + 0x38]
mov dword [esp + 0x2fc], 0xffffffff
call fcn.00406bc0
xor al, al
jmp 0x41cc42
lea ecx, [esp + 0x258]
mov byte [esp + 0x2fc], 1
call fcn.00431780
lea ecx, [esp + 0xc0]
mov byte [esp + 0x2fc], 0
call fcn.00406bc0
lea ecx, [esp + 0x38]
mov dword [esp + 0x2fc], 0xffffffff
call fcn.00406bc0
mov al, 1
mov ecx, dword [esp + 0x2f4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x2e0]
xor ecx, esp
call fcn.0046255c
add esp, 0x2f0
ret
Function at 0x41d5d0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x479de8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
mov eax, dword [0x536400]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
lea ecx, [esp + 8]
call fcn.004089c0
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x40], 0
call fcn.00407530
mov ecx, dword [esp + 0x4c]
push eax
call fcn.00407530
push eax
call fcn.0041d390
mov bl, al
add esp, 0x10
test bl, bl
je 0x41d646
lea ecx, [esp + 8]
call fcn.0040a520
mov ecx, dword [esp + 0x48]
push eax
call fcn.00406da0
jmp 0x41d64f
mov ecx, dword [esp + 0x48]
call fcn.00406ce0
lea ecx, [esp + 8]
mov dword [esp + 0x38], 0xffffffff
call fcn.00408bf0
mov al, bl
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop ebx
add esp, 0x34
ret

Function at 0x41e150
Capabilities:
Get file attributes

Disassembly:
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
ret

Function at 0x41e1d0
Capabilities:
Set file attributes

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
ret

Function at 0x41e230
Capabilities:
Get session user name

Disassembly:
sub esp, 0x1c0
mov eax, dword [0x536400]
xor eax, esp
mov dword [esp + 0x1bc], eax
push esi
mov esi, dword [esp + 0x1c8]
lea eax, [esp + 4]
push eax
lea ecx, [esp + 0xc]
push ecx
mov dword [esp + 0xc], 0x190
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test al, al
jne 0x41e26c
mov byte [esp + 8], al
lea edx, [esp + 8]
push edx
mov ecx, esi
call fcn.004085a0
mov ecx, dword [esp + 0x1c0]
pop esi
xor ecx, esp
call fcn.0046255c
add esp, 0x1c0
ret