joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4aeb00
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x59dd08
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x44]
push ebp
push 0x80
push 3
push ebp
push 1
push closesocket
push eax
mov dword [esp + 0x58], ebp
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x4aebe7
call fcn.004129d0
cmp eax, ebp
jl 0x4aecda
lea ecx, [esp + 0x28]
push ecx
push ebx
mov dword [esp + 0x1c], ebp
xor esi, esi
mov dword [esp + 0x30], ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esp + 0x24], eax
jne 0x4aeb90
call fcn.004129d0
cmp eax, ebp
jl 0x4aeb9a
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov esi, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebp
push esi
mov byte [esp + 0x40], 1
call fcn.0057740a
mov esi, eax
add esp, 4
cmp esi, ebp
mov dword [esp + 0x20], esi
jne 0x4aebf2
push esi
call fcn.00578327
add esp, 4
cmp ebx, ebp
je 0x4aebce
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x8007000e
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x4aeb64
mov ecx, dword [esp + 0x14]
push ebp
lea eax, [esp + 0x18]
push eax
push ecx
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebp
jne 0x4aec0e
call fcn.004129d0
cmp ebx, ebp
je 0x4aec1f
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x48]
mov eax, dword [edi]
push eax
call fcn.00578327
mov edx, dword [esp + 0x50]
add esp, 4
cmp dword [esp + 0x14], 8
mov dword [edi], ebp
mov dword [edx], ebp
jbe 0x4aecb0
mov eax, dword [esi]
cmp eax, 0x46534353
je 0x4aec4d
cmp eax, 0x44534353
jne 0x4aecb0
mov eax, dword [esi + 4]
cmp eax, 0x2000000
ja 0x4aecb0
push eax
mov dword [esp + 0x20], eax
call fcn.0057740a
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
cmp edi, ebp
mov byte [esp + 0x3c], 2
je 0x4aeca3
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push edi
add ecx, 0xfffffff8
lea edx, [esi + 8]
call fcn.004704d0
add esp, 8
test eax, eax
jne 0x4aeca3
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov eax, edi
mov dword [ecx], eax
mov eax, dword [esp + 0x4c]
xor edi, edi
mov dword [eax], edx
push edi
call fcn.00578327
mov edi, dword [esp + 0x4c]
add esp, 4
cmp dword [edi], ebp
jne 0x4aecc4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, esi
mov dword [edi], eax
xor esi, esi
mov dword [edx], ecx
push esi
call fcn.00578327
add esp, 4
cmp ebx, ebp
je 0x4aecd8
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
Function at 0x4af1b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5a2fe8
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
cmp dword [esi], 0
jne 0x4af1f9
mov eax, 0x80004005
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push eax
lea edi, [esp + 0x14]
mov dword [esp + 0x2c], 0
call fcn.0044b670
push 2
push 0x5bce38
mov ecx, edi
push ecx
call fcn.00408a10
mov eax, dword [esi]
push 2
lea edx, [esp + 0x1c]
xor ebx, ebx
push edx
push ebx
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x4af25b
call fcn.004129d0
mov edi, dword [esp + 0x10]
mov eax, dword [edi - 0xc]
mov edx, dword [esi]
push ebx
lea ecx, [esp + 0x14]
push ecx
push eax
push edi
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, ebx
jne 0x4af27e
call fcn.004129d0
mov ebx, eax
lea eax, [edi - 0x10]
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af2a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x4af890
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a00cb
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov ebx, ecx
push 0x24
call fcn.00578e5f
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x1c], 0
je 0x4af8db
push eax
call fcn.00494750
mov esi, eax
jmp 0x4af8dd
xor esi, esi
test esi, esi
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], esi
jne 0x4af903
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x14
ret 0x14
test ebx, ebx
jne 0x4af90b
xor eax, eax
jmp 0x4af91f
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4af910
sub eax, edx
sar eax, 1
push ebx
mov ebx, eax
mov eax, esi
call fcn.00404050
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 1
mov dword [esi + 0x1c], 0
mov esi, dword [esp + 0x24]
add esi, 0x50
lea ebx, [esp + 0x10]
call fcn.00546ab0
mov eax, 1
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x14
ret 0x14
Function at 0x4af990
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a301b
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
push 0x24
call fcn.00578e5f
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
mov dword [esp + 0x18], 0
je 0x4af9d7
push eax
call fcn.00494750
mov esi, eax
jmp 0x4af9d9
xor esi, esi
test esi, esi
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc], esi
jne 0x4af9ff
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x10
ret 0x18
test edi, edi
jne 0x4afa07
xor eax, eax
jmp 0x4afa1f
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4afa10
sub eax, edx
sar eax, 1
mov ebx, eax
push edi
mov eax, esi
call fcn.00404050
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], 2
mov dword [esi + 0x1c], 0
mov esi, dword [esp + 0x20]
add esi, 0x50
lea ebx, [esp + 0xc]
call fcn.00546ab0
mov eax, 1
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x10
ret 0x18

Function at 0x4b0080
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x59ee80
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax + 0x4b023c]
jmp dword [ecx*4 + 0x4b0234]
Function at 0x4b0b80
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
mov edi, eax
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x4b0baa
cmp byte [esi + 0x738], al
jne 0x4b0baa
cmp byte [esi + 0x739], al
jne 0x4b0baa
mov edi, 1
push edi
call fcn.004b0c00
mov ecx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 2
push ecx
call edi
push 0x5be630
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [esi + 4]
push 0x4c7
push edx
call edi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push eax
call ebx
mov eax, dword [esi + 4]
push 6
push eax
call edi
push 0
push eax
call ebx
mov ecx, dword [esi + 4]
push 7
push ecx
call edi
push 0
push eax
call ebx
pop edi
pop esi
pop ebx
ret

Function at 0x4b0ee5
Capabilities:
Hide graphical window

Disassembly:
cmp eax, 0x404
push esi
mov esi, ecx
jg 0x4b0f8c
je 0x4b0f47
cmp eax, 0x202
jl 0x4b0ff1
cmp eax, 0x203
jle 0x4b0f0d
cmp eax, 0x205
jne 0x4b0ff1
mov eax, dword [esi + 4]
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esi + 4]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, dword [esi + 4]
push 0
push 0x12c
push 0x66f
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [esi + 4]
push 0x68c
push eax
jmp 0x4b0feb
cmp byte [esi + 0x73c], 0
jne 0x4b0f7a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x72c]
cmp eax, 0x1374
ja 0x4b0f7a
cmp byte [esi + 0x73b], 0
mov byte [esi + 0x738], 0
je 0x4b0f7a
push 1
call fcn.004b0c00
mov ecx, dword [esi + 4]
push 0x6a2
mov byte [esi + 0x73c], 0
push ecx
jmp 0x4b0feb
cmp eax, 0x405
jne 0x4b0ff1
cmp byte [esi + 0x73b], 0
je 0x4b0fb6
push 1
call fcn.004b0c00
mov eax, dword [esp + 8]
mov dword [eax], 0
mov eax, 1
pop esi
ret 4
mov edx, dword [esi + 4]
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [esi + 4]
push 0
push 0x12c
push 0x66f
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [esi + 4]
push 0x68c
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esp + 8]
mov dword [eax], 0
mov eax, 1
pop esi
ret 4
Function at 0x4b1470
Capabilities:
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x5a4450
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov edi, edx
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x24]
push eax
call fcn.00404460
mov dword [esp + 0x1c], 0
mov ecx, dword [ebx + 0x374]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 1
push ecx
call esi
mov edx, dword [ebx + 0x37c]
push 1
push edx
call esi
mov eax, dword [ebx + 0x378]
push 0
push eax
call esi
cmp edi, 0xffffffff
je 0x4b14ed
mov ecx, dword [ebx + 0x37c]
push 0
push edi
push 0x402
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x24]
push edx
call fcn.004b12f0
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0x16
jle 0x4b1557
mov eax, 0x14
lea ecx, [esp + 0x10]
lea edx, [esp + 0x24]
call fcn.00403560
lea edi, [esp + 0x24]
mov byte [esp + 0x1c], 1
call fcn.004035d0
mov byte [esp + 0x1c], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b1546
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 3
push 0x5c8384
lea ecx, [esp + 0x2c]
push ecx
call fcn.00403fc0
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + 0x374]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b1591
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10
ret 4

Function at 0x4b15b0
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
mov ebx, eax
mov eax, dword [ebx + 0x374]
push 0
push eax
call esi
mov ecx, dword [ebx + 0x37c]
push 0
push ecx
call esi
mov edx, dword [ebx + 0x378]
push 1
push edx
call esi
mov eax, dword [ebx + 0x378]
push edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
push edi
call fcn.004b12f0
pop esi
pop ebx
ret
Function at 0x4b2040
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x5f13cc]
xor eax, esp
mov dword [esp + 0x11c], eax
push esi
push 0x118
lea eax, [esp + 0xc]
push 0
push eax
call fcn.00580260
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov dword [esp + 8], 0x11c
call esi
test eax, eax
jne 0x4b2095
lea edx, [esp + 4]
push edx
mov dword [esp + 8], 0x114
call esi
test eax, eax
je 0x4b20be
cmp dword [esp + 0x14], 2
jne 0x4b20be
cmp dword [esp + 8], 5
ja 0x4b20be
mov eax, 1
pop esi
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.005787fd
add esp, 0x120
ret
mov ecx, dword [esp + 0x120]
pop esi
xor ecx, esp
xor eax, eax
call fcn.005787fd
add esp, 0x120
ret
Function at 0x4b44b0
Capabilities:
Encode data using base64

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
push edi
mov edi, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*4]
sub ecx, eax
neg ecx
add ecx, ecx
add ecx, ecx
mov edx, ecx
mov ecx, 0xc
sub ecx, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
push ecx
xor esi, esi
call fcn.005786ac
add esp, 4
cmp ebx, 2
mov ecx, eax
jle 0x4b459a
lea edx, [ebx - 3]
mov eax, 0xaaaaaaab
mul edx
push ebp
mov ebp, edx
shr ebp, 1
add ebp, 1
lea eax, [ebp*4]
sub eax, ebp
neg eax
add ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x4b4530
movzx eax, byte [edi]
movzx ebx, byte [edi + 1]
mov edx, eax
shr edx, 2
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi], dl
and eax, 3
shl eax, 4
mov edx, ebx
shr edx, 4
movzx eax, byte [edx + eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi + 1], al
movzx eax, byte [edi + 2]
add esi, 1
mov edx, eax
shr edx, 6
and ebx, 0xf
movzx edx, byte [edx + ebx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
add esi, 1
and eax, 0x3f
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi], dl
add esi, 1
mov byte [ecx + esi], al
add esi, 1
add edi, 3
sub ebp, 1
jne 0x4b4530
mov ebx, dword [esp + 0x14]
pop ebp
test ebx, ebx
je 0x4b45fc
movzx eax, byte [edi]
mov edx, eax
shr edx, 2
mov dl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
and eax, 3
mov byte [ecx + esi], dl
add esi, 1
shl eax, 4
cmp ebx, 1
jle 0x4b45e2
movzx edx, byte [edi + 1]
mov edi, edx
shr edi, 4
mov al, byte [edi + eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi], al
add esi, 1
and edx, 0xf
mov dl, byte [edx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi], dl
jmp 0x4b45f2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + esi], al
add esi, 1
mov byte [ecx + esi], 0x3d
add esi, 1
mov byte [ecx + esi], 0x3d
add esi, 1
mov eax, dword [esp + 0x14]
test eax, eax
mov byte [ecx + esi], 0
je 0x4b460a
mov dword [eax], esi
pop edi
pop esi
mov eax, ecx
pop ebx
ret
Function at 0x4b4610
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a4412
mov eax, dword fs:[0]
push eax
mov eax, 0x1040
call fcn.00595100
mov eax, dword [0x5f13cc]
xor eax, esp
mov dword [esp + 0x103c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x1054]
mov dword fs:[0], eax
xor ebx, ebx
push 0x2e
lea eax, [esp + 0x25]
mov dword [esp + 0x1060], ebx
mov edi, ecx
push ebx
push eax
mov dword [esp + 0x28], edi
mov esi, edx
mov dword [esp + 0x24], ebx
call fcn.00580260
add esp, 0xc
mov byte [esp + 0x20], 1
mov byte [esp + 0x25], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, dword [sym.imp.WS2_32.dll_htonl]
push eax
call ebp
mov ecx, dword [esp + 0x1068]
push ecx
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], ebx
call ebp
push ebx
push ebx
push 0x20
lea edx, [esp + 0x3b]
push edx
push 0xffffffffffffffff
push esi
push ebx
push ebx
mov dword [esp + 0x41], eax
mov byte [esp + 0x4e], 1
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0xfff
lea eax, [esp + 0x55]
push ebx
push eax
mov byte [esp + 0x5c], bl
call fcn.00580260
push str.3478hfFAF__abac
lea ecx, [esp + 0x30]
push 0x2f
push ecx
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x68]
mov dword [esp + 0x2c], 0x1000
call fcn.00401c40
mov edx, dword [0x5fcd20]
mov eax, dword [edx + 0xc]
add esp, 0x18
mov ecx, 0x5fcd20
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, dword [esp + 0x1064]
mov dword [esp + 0x105c], ebx
mov edx, dword [ecx*4 + 0x5ba898]
push edx
push str.__s_
mov dword [esp + 0x20], 1
call fcn.0045bcf0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x1c]
push eax
push ecx
lea eax, [esp + 0x60]
call fcn.004b44b0
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x4b476c
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x4b4750
sub eax, edx
push eax
push esi
push edi
call fcn.00408a10
push esi
call fcn.00578327
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x1054]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x103c]
xor ecx, esp
call fcn.005787fd
add esp, 0x104c
ret

Function at 0x4b4b90
Capabilities:
Delete file

Disassembly:
push ebx
xor ebx, ebx
push edi
mov ecx, esi
mov dword [esi + 0xb8], ebx
call fcn.004096c0
mov eax, dword [esi + 0x128]
cmp eax, ebx
je 0x4b4bcc
push eax
call fcn.0057876f
add esp, 4
mov dword [esi + 0x128], ebx
mov dword [esi + 0x130], ebx
mov dword [esi + 0x134], ebx
mov dword [esi + 0x12c], ebx
mov eax, dword [esi + 0x120]
cmp eax, ebx
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x4b4be5
push eax
call edi
mov dword [esi + 0x120], ebx
mov eax, dword [esi + 0x68]
cmp eax, ebx
je 0x4b4c01
push eax
call fcn.0057876f
add esp, 4
mov dword [esi + 0x68], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x6c], ebx
mov eax, dword [esi + 0x148]
cmp eax, ebx
je 0x4b4c14
push eax
call edi
mov dword [esi + 0x148], ebx
cmp dword [esp + 0xc], ebx
je 0x4b4c3c
mov eax, dword [esi + 0x144]
cmp dword [eax - 0xc], ebx
lea edi, [esi + 0x144]
je 0x4b4c3c
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, 0x5bcc3c
call fcn.004040f0
pop edi
pop ebx
ret 4
Function at 0x4b5d30
Capabilities:
Get file size

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esi + 0x128]
push edi
xor edi, edi
cmp eax, edi
je 0x4b5d66
push eax
call fcn.0057876f
add esp, 4
mov dword [esi + 0x128], edi
mov dword [esi + 0x130], edi
mov dword [esi + 0x134], edi
mov dword [esi + 0x12c], edi
mov eax, dword [esi + 0x120]
cmp eax, edi
je 0x4b5d7d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x120], edi
mov eax, dword [esp + 0x34]
push edi
push 0x80
push 3
push edi
push 1
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x4b5dc0
call fcn.004129d0
mov ebp, eax
cmp ebp, edi
jge 0x4b5dc6
push 1
call fcn.004b4b90
mov eax, ebp
and eax, 0xffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x1c
mov dword [esi + 0x120], eax
mov edx, dword [esi + 0x120]
lea ecx, [esp + 0x14]
push ecx
push edx
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x4b5df0
call fcn.004129d0
test eax, eax
jl 0x4b5df6
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ebx
push edi
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004b53a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x1c
Function at 0x4b5ef0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x100c
call fcn.00595100
mov eax, dword [0x5f13cc]
xor eax, esp
mov dword [esp + 0x1008], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xf8]
mov ebx, dword [eax - 0xc]
test ebx, ebx
jle 0x4b5f71
mov ecx, dword [edi + 0x14]
lea esi, [edi + 8]
push eax
mov dword [esi + 0x10], ecx
call fcn.00408340
cmp byte [edi + 0x45], 0
mov edx, dword [edi]
mov ecx, edi
je 0x4b5f3e
mov eax, dword [edx + 0xc]
jmp 0x4b5f41
mov eax, dword [edx + 0x20]
call eax
test eax, eax
jne 0x4b611b
mov ecx, dword [edi + 0xf8]
mov eax, dword [ecx - 0xc]
lea ebx, [edi + 0xf8]
cdq
add dword [edi + 0x118], eax
adc dword [edi + 0x11c], edx
mov edx, 0x5bce10
call fcn.00407ea0
cmp byte [edi + 0x46], 0
jne 0x4b607b
mov edx, dword [edi + 0x10c]
cmp edx, dword [edi + 0x104]
ja 0x4b607b
jb 0x4b5fa1
mov eax, dword [edi + 0x108]
cmp eax, dword [edi + 0x100]
jae 0x4b607b
mov eax, dword [edi + 0x120]
xor esi, esi
cmp eax, esi
mov dword [esp + 0xc], esi
je 0x4b5fd3
push esi
lea ecx, [esp + 0x10]
push ecx
push 0x1000
lea edx, [esp + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4b601d
call fcn.004129d0
jmp 0x4b601d
mov ebx, dword [edi + 0x134]
mov eax, dword [edi + 0x130]
cmp ebx, eax
ja 0x4b6019
mov esi, eax
sub esi, ebx
cmp esi, 0x1000
jb 0x4b5ff6
mov esi, 0x1000
jmp 0x4b5ffa
test esi, esi
jbe 0x4b6019
mov eax, dword [edi + 0x128]
push esi
add eax, ebx
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.0057e7b0
add esp, 0xc
add ebx, esi
mov dword [edi + 0x134], ebx
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0xc]
test ebx, ebx
jbe 0x4b607b
mov edx, dword [edi + 0x14]
lea esi, [edi + 8]
lea eax, [esp + 0x10]
push eax
mov dword [esi + 0x10], edx
call fcn.00408340
cmp byte [edi + 0x45], 0
mov edx, dword [edi]
mov ecx, edi
je 0x4b6047
mov eax, dword [edx + 0xc]
jmp 0x4b604a
mov eax, dword [edx + 0x20]
call eax
test eax, eax
jne 0x4b611b
mov eax, dword [esp + 0xc]
xor ecx, ecx
add dword [edi + 0x118], eax
adc dword [edi + 0x11c], ecx
add dword [edi + 0x108], eax
adc dword [edi + 0x10c], ecx
cmp byte [edi + 0x46], cl
je 0x4b5f7b
mov ecx, dword [edi + 0x10c]
cmp ecx, dword [edi + 0x104]
jb 0x4b6119
ja 0x4b609d
mov edx, dword [edi + 0x108]
cmp edx, dword [edi + 0x100]
jb 0x4b6119
mov eax, dword [edi + 0x120]
xor esi, esi
cmp eax, esi
je 0x4b60b6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x120], esi
mov eax, dword [edi + 0x128]
cmp eax, esi
je 0x4b60e1
push eax
call fcn.0057876f
add esp, 4
mov dword [edi + 0x128], esi
mov dword [edi + 0x130], esi
mov dword [edi + 0x134], esi
mov dword [edi + 0x12c], esi
mov ecx, dword [edi + 0xfc]
mov eax, dword [ecx - 0xc]
cmp eax, esi
lea ebx, [edi + 0xfc]
jle 0x4b6119
call fcn.00409780
cmp eax, esi
jne 0x4b611b
mov eax, dword [ebx]
mov eax, dword [eax - 0xc]
cdq
add dword [edi + 0x118], eax
adc dword [edi + 0x11c], edx
mov edx, 0x5bce10
call fcn.00407ea0
xor eax, eax
mov ecx, dword [esp + 0x1014]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005787fd
mov esp, ebp
pop ebp
ret
Function at 0x4b66a0
Capabilities:
Get common file path

Disassembly:
push ebx
push 0x5bcc3c
xor ebx, ebx
mov eax, esi
call fcn.00404050
mov eax, dword [esi]
mov edx, dword [eax - 8]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, 0x106
or ecx, edx
pop ebx
jge 0x4b66d6
mov ecx, 0x106
mov eax, esi
call fcn.00403d50
mov eax, dword [esi]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push eax
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov eax, dword [esi]
mov ecx, 0x104
cmp dword [eax - 8], ecx
jl 0x4b673a
mov dword [eax - 0xc], ecx
mov eax, dword [esi]
mov word [eax + 0x208], 0
mov edx, dword [esi]
test edx, edx
jne 0x4b670f
xor eax, eax
jmp 0x4b6727
mov eax, edx
push edi
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b6715
sub eax, edi
sar eax, 1
pop edi
js 0x4b673a
cmp eax, dword [edx - 8]
jg 0x4b673a
mov dword [edx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov eax, esi
ret
push 0x80070057
call fcn.00404550
int3