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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, eax
and eax, 0x3f
sar ebx, 6
push edi
imul edi, eax, 0x38
push 0xa
mov eax, dword [ebx*4 + 0xae1578]
pop edx
mov dword [ebp - 0x14], edx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0xa725af
cmp word [esi], dx
jne 0xa725af
or byte [edi + eax + 0x28], 4
jmp 0xa725b4
and byte [edi + eax + 0x28], 0xfb
lea edx, [esi + ecx*2]
mov eax, esi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp eax, edx
jae 0xa726ed
mov dword [ebp - 0xc], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x10], edx
push 0x1a
pop edx
cmp cx, dx
mov edx, dword [ebp - 8]
je 0xa726cd
add eax, 2
cmp cx, word [ebp - 0xc]
je 0xa725f6
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0xa7262c
cmp eax, edx
jae 0xa72638
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x14]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 8]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
add esi, 2
cmp eax, edx
jb 0xa725ce
jmp 0xa726ed
push 0
lea eax, [ebp - 0x14]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0xa726c9
cmp dword [ebp - 0x14], 0
je 0xa726c9
mov eax, dword [ebx*4 + 0xae1578]
push 0xa
test byte [edi + eax + 0x28], 0x48
je 0xa726a1
mov cx, word [ebp - 4]
pop eax
cmp cx, ax
je 0xa726e7
push 0xd
pop eax
mov word [esi], ax
mov eax, dword [ebx*4 + 0xae1578]
push 0xa
mov byte [edi + eax + 0x2a], cl
mov eax, dword [ebx*4 + 0xae1578]
shr cx, 8
mov byte [edi + eax + 0x2b], cl
mov eax, dword [ebx*4 + 0xae1578]
pop ecx
mov byte [edi + eax + 0x2c], cl
jmp 0xa726ea
pop ebx
cmp word [ebp - 4], bx
jne 0xa726b2
cmp esi, dword [ebp + 0xc]
jne 0xa726b2
mov word [esi], bx
jmp 0xa726ea
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.00a68a97
add esp, 0x10
cmp word [ebp - 4], bx
je 0xa726ed
push 0xd
jmp 0xa726e6
mov ecx, dword [ebx*4 + 0xae1578]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0xa726e4
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0xa726ed
push 0x1a
pop eax
mov word [esi], ax
add esi, 2
sub esi, dword [ebp + 0xc]
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0xa72f0e
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00a72d7f
Function at 0xa73f8a
Capabilities:
Clear file content

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
push esi
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.00a73f06
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0xa74102
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0xa74102
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test ecx, ecx
jl 0xa740b1
jg 0xa73fe3
test eax, eax
je 0xa740a7
push 1
push 0x1000
call fcn.00a5dd4e
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0xa74009
mov eax, dword [ebp + 0x14]
push 0xc
pop edi
mov byte [eax + 0x1c], 1
mov dword [eax + 0x18], edi
jmp 0xa7409e
push 0x8000
push ebx
call fcn.00a5c40d
mov edi, dword [ebp + 0x14]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0xa74035
jg 0xa74030
cmp ecx, 0x1000
jb 0xa74035
mov ecx, 0x1000
push edi
push ecx
push esi
push ebx
call fcn.00a73806
add esp, 0x10
cmp eax, 0xffffffff
je 0xa7407a
mov ecx, dword [ebp - 4]
cdq
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
sbb eax, edx
mov dword [ebp - 8], eax
test eax, eax
jg 0xa74030
jl 0xa74061
test ecx, ecx
jne 0xa74022
push dword [ebp - 0xc]
push ebx
call fcn.00a5c40d
push esi
call fcn.00a5ea75
add esp, 0xc
xor edi, edi
jmp 0xa74113
cmp byte [edi + 0x24], 0
je 0xa74091
cmp dword [edi + 0x20], 5
jne 0xa74091
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], 0xd
cmp byte [edi + 0x1c], 0
je 0xa7409c
mov edi, dword [edi + 0x18]
jmp 0xa7409e
xor edi, edi
push esi
call fcn.00a5ea75
pop ecx
jmp 0xa74113
test ecx, ecx
jg 0xa74073
jl 0xa740b1
test eax, eax
jae 0xa74073
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.00a68a97
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
jne 0xa740d4
mov edi, dword [ebp + 0x14]
cmp byte [edi + 0x1c], 0
je 0xa74073
jmp 0xa7410b
push ebx
call fcn.00a6d2b9
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0xa74073
mov esi, dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
mov byte [esi + 0x24], 1
mov dword [esi + 0x20], eax
pop edi
mov byte [esi + 0x1c], 1
mov dword [esi + 0x18], edi
jmp 0xa74113
mov edi, dword [ebp + 0x14]
cmp byte [edi + 0x1c], 0
je 0xa74110
mov edi, dword [edi + 0x18]
jmp 0xa74113
push 0x16
pop edi
push 0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
call fcn.00a68a97
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret

Function at 0xa79f0f
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret
Function at 0x4030b4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push 0
mov eax, dword [ebp + 8]
push eax
push dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push eax
push dword [ebp + 0x14]
call sub.kernel32.dll_WriteFile
test eax, eax
setne al
movsx eax, al
push eax
call fcn.00402f54
mov esi, eax
cmp dword [0x407efc], 0xffffffff
je 0x403115
mov eax, dword [ebp + 0x14]
cmp eax, dword [0x407ef8]
jne 0x403115
lea eax, [ebp - 0x1c]
push eax
push dword [0x407ef8]
call sub.kernel32.dll_GetConsoleScreenBufferInfo
movsx eax, word [ebp - 0x18]
mov dword [0x407f04], eax
movsx eax, word [ebp - 0x16]
mov dword [0x407f08], eax
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x10

Function at 0x40322c
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38c
push esi
push edi
mov edi, 3
push 0x408a64
call fcn.00406390
mov esi, dword [eax]
push 0x408a64
call fcn.00406390
mov dword [eax], 0x40
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x38c]
push eax
push 0
call fcn.00405bf8
call fcn.00405a74
lea eax, [ebp - 0x150]
push eax
push 1
call fcn.00405b00
call fcn.004046b8
test eax, eax
jne 0x40336d
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x190]
push eax
push 0x40
push 0
call fcn.00405bd8
call fcn.004046b8
test eax, eax
jne 0x4032e3
cmp word [ebp - 0x190], 0x5a4d
jne 0x4032e3
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x154]
call fcn.00405b1c
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x190]
push eax
push 2
push 0
call fcn.00405bd8
jmp 0x4032ed
mov dword [ebp - 0x154], 0
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x154]
call fcn.00405b1c
call fcn.004046b8
test eax, eax
jne 0x403351
cmp word [ebp - 0x190], 0x4550
jne 0x403351
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x288]
push eax
push 0xf8
push 0
call fcn.00405bd8
call fcn.004046b8
test eax, eax
jne 0x403351
cmp dword [ebp - 0x288], 0x4550
jne 0x403351
cmp word [ebp - 0x22c], 3
jne 0x403351
mov edi, 2
lea eax, [ebp - 0x150]
push eax
call fcn.00405b4c
push 0x408a5c
call fcn.00406390
mov dword [eax], 0
push 0x408a64
call fcn.00406390
mov dword [eax], esi
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4033c4
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [ebp + 8]
push eax
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push dword [ebp + 0x1c]
call sub.kernel32.dll_CreateThread
mov esi, eax
push esi
call sub.kernel32.dll_CloseHandle
test esi, esi
setne al
movsx eax, al
push eax
call fcn.00402f54
mov esi, eax
mov eax, esi
pop esi
pop ebp
ret 0x18
Function at 0x403468
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
push edi
cmp dword [0x407f9c], 0
je 0x40348a
mov eax, dword [0x407f9c]
mov dword [ebp - 4], eax
jmp 0x40351f
push 0x104
call fcn.0040478c
mov dword [ebp - 4], eax
push 0x104
push dword [ebp - 4]
push 0
call sub.kernel32.dll_GetModuleFileNameA
push dword [ebp - 4]
call fcn.00404254
inc eax
mov ebx, eax
call sub.kernel32.dll_GetCommandLineA
mov esi, eax
mov al, byte [esi]
dec al
cmp al, 0x1f
jbe 0x4034cf
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.00403400
mov esi, eax
inc esi
push esi
call fcn.00404254
inc eax
mov edi, eax
lea eax, [ebp - 4]
push eax
mov eax, ebx
add eax, edi
inc eax
push eax
call fcn.004047ec
call sub.kernel32.dll_AreFileApisANSI
test eax, eax
jne 0x403500
push edi
mov eax, dword [ebp - 4]
add eax, ebx
push eax
push esi
call sub.user32.dll_CharToOemBuffA
jmp 0x40350d
push esi
mov eax, dword [ebp - 4]
add eax, ebx
push eax
push edi
call fcn.00404fcc
mov eax, dword [ebp - 4]
add eax, ebx
add eax, edi
mov byte [eax], 0
mov eax, dword [ebp - 4]
mov dword [0x407f9c], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4035fc
Capabilities:
Contain obfuscated stackstrings
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov dword [ebp - 0x24], 0x52414853
mov dword [ebp - 0x20], 0x454d4445
mov dword [ebp - 0x1c], 0x5356354d
call sub.kernel32.dll_GetCurrentProcessId
push eax
push 0
lea eax, [ebp - 0x18]
push eax
push 0xb
call fcn.00404f40
xor eax, eax
mov bl, 0
cmp dword [0x407f40], 0
jne 0x40364a
push 0x407c90
push 1
call fcn.00402e60
mov dword [0x407f40], eax
cmp dword [0x407f40], 0
jne 0x403663
push 0x8000
call fcn.0040478c
mov esi, eax
mov bl, 1
jmp 0x40369d
lea eax, [ebp - 0x24]
push eax
push 0
push 6
call dword [0x407f40]
test eax, eax
jne 0x40368d
lea eax, [ebp - 0x24]
push eax
push 0x8000
push 0
push 4
push 0
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov bl, 1
push 0
push 0
push 0
push 6
push eax
call sub.kernel32.dll_MapViewOfFile
mov esi, eax
test bl, bl
je 0x4036c6
push esi
push 0x8000
push 0xff
call fcn.00405028
push esi
push 0x24
push 0
call fcn.00405028
mov eax, esi
add eax, 0xc
push eax
call fcn.00404874
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x403a74
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
push esi
call fcn.00403a00
lea edx, [ebp - 0x400]
movzx ecx, word [ebp + 0x14]
dec ecx
xor esi, esi
jmp 0x403aac
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
mov word [edx + 2], ax
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax]
mov word [edx], ax
inc dword [ebp + 0x18]
add edx, 4
inc esi
cmp ecx, esi
jge 0x403a92
mov ax, word [ebp + 0x14]
mov word [ebp - 0x404], ax
mov word [ebp - 0x402], 1
mov word [ebp - 0x408], 0
mov word [ebp - 0x406], 0
mov ax, word [ebp + 0x10]
mov word [ebp - 0x410], ax
mov ax, word [ebp + 0xc]
mov word [ebp - 0x40e], ax
movzx ecx, word [ebp + 0x10]
movzx eax, word [ebp + 0x14]
add ecx, eax
dec ecx
mov word [ebp - 0x40c], cx
mov ax, word [ebp + 0xc]
mov word [ebp - 0x40a], ax
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x408]
push dword [ebp - 0x404]
lea eax, [ebp - 0x400]
push eax
push dword [0x407ef8]
call sub.kernel32.dll_WriteConsoleOutputA
pop esi
mov esp, ebp
pop ebp
ret 0x14

Function at 0x403e54
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 4
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push dword [ebp + 0x10]
call sub.kernel32.dll_GetLocaleInfoA
test eax, eax
jle 0x403e74
mov al, byte [ebp - 4]
jmp 0x403e77
mov al, byte [ebp + 8]
mov esp, ebp
pop ebp
ret 0xc
Function at 0x405eb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
push edi
or edi, 0xffffffff
or eax, 0xffffffff
mov dword [ebp - 0x24], 0
xor esi, esi
mov edx, dword [0x4082f0]
add edx, 0x24
mov esi, edx
cmp dword [edx], 0xffffffff
je 0x405eee
mov ecx, dword [edx + 8]
cmp ecx, dword [ebp + 0x10]
ja 0x405ee9
mov ecx, dword [edx + 8]
cmp ecx, dword [esi + 8]
jbe 0x405ee9
mov esi, edx
add edx, 0x10
jmp 0x405ed2
mov edx, esi
cmp dword [edx], 0xffffffff
je 0x406002
mov ecx, dword [edx + 8]
cmp ecx, dword [ebp + 0x10]
ja 0x406002
mov ecx, dword [edx + 8]
cmp ecx, dword [ebp + 0x10]
ja 0x406000
mov ecx, dword [edx + 8]
sub dword [ebp + 0x10], ecx
mov ecx, dword [edx + 8]
mov dword [ebp - 0x18], ecx
mov edx, dword [edx + 0xc]
test edx, edx
je 0x406000
mov cl, byte [edx]
sub cl, 0x3c
jne 0x405f36
jmp 0x406000
sub cl, 3
jne 0x405f50
inc edx
mov dword [ebp - 0xc], edx
movzx ecx, byte [edx]
inc ecx
add edx, ecx
mov byte [ebp - 0x25], 1
jmp 0x405ffb
inc cl
jne 0x405f64
movzx ecx, word [edx + 1]
add edi, ecx
add edx, 3
jmp 0x405ffb
inc cl
jne 0x405f78
movzx ecx, word [edx + 1]
add edi, ecx
mov ecx, dword [edx + 3]
add eax, ecx
add edx, 7
jmp 0x405f8b
movzx ecx, byte [edx]
shr ecx, 6
add edi, ecx
mov cl, byte [edx]
and cl, 0x3f
movzx ecx, cl
add eax, ecx
inc edx
cmp eax, dword [ebp + 0x10]
jne 0x405f95
mov esi, eax
mov dword [ebp - 0x24], edi
cmp eax, dword [ebp + 0x10]
jl 0x405ff2
sub eax, dword [ebp + 0x10]
cmp eax, 0xa
jle 0x405fa8
cmp byte [ebp - 0x25], 0
jne 0x405ff0
mov eax, dword [ebp - 0xc]
mov cl, byte [eax]
mov eax, dword [ebp + 0xc]
mov byte [eax], cl
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x14]
jle 0x405fde
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dl, byte [eax + ecx]
xor dl, 0xaa
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
mov byte [eax + ecx], dl
jmp 0x405fb9
movzx eax, word [ebp - 0x24]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
add esi, dword [ebp - 0x18]
mov eax, esi
jmp 0x406002
jmp 0x406000
mov esi, eax
mov dword [ebp - 0x24], edi
mov byte [ebp - 0x25], 0
jmp 0x405f28
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc

Function at 0x4064d8
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x10
cld
push ecx
call fcn.004064b4
call fcn.004035fc
mov dword [0x4082f0], eax
lea edx, [eax + 0x18]
mov dword [0x408350], edx
pop edx
call fcn.00406334
call sub.kernel32.dll_GetEnvironmentStrings
mov dword [0x40831c], eax
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x408330], eax
mov dword [0x408358], eax
call fcn.0040322c
cmp eax, 3
setb byte [0x4082f9]
call fcn.0040424c
lea eax, [esp]
xor edx, edx
mov ecx, dword fs:[edx]
mov dword fs:[edx], eax
mov dword [eax], ecx
mov dword [eax + 4], 0x406764
mov dword [eax + 8], ebp
jmp dword [esp + 0x10]
Function at 0x401e20
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x18]
cmp eax, 3
ja case.default.0x401e31
jmp dword [eax*4 + 0x40332c]
cmp dword [0x4050e0], 0
je 0x401f2d
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [0x4050fc]
test edi, edi
je 0x401f22
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x401e7b
mov edi, dword [edi + 8]
test edi, edi
je 0x401f22
push dword [edi]
call ebx
mov esi, eax
call ebp
test eax, eax
jne 0x401e70
test esi, esi
je 0x401e70
mov eax, dword [edi + 4]
push esi
call eax
add esp, 4
jmp 0x401e70
cmp dword [0x4050e0], 0
jne 0x401eaa
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x4050e0], 1
jmp case.default.0x401e31
call fcn.00401630
jmp case.default.0x401e31
cmp dword [0x4050e0], 0
je case.default.0x401e31
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [0x4050fc]
test edi, edi
je 0x401f73
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x401f07
mov edi, dword [edi + 8]
test edi, edi
je 0x401f73
push dword [edi]
call ebx
mov esi, eax
call ebp
test eax, eax
jne 0x401f00
test esi, esi
je 0x401f00
mov eax, dword [edi + 4]
push esi
call eax
add esp, 4
jmp 0x401f00
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x4050e0]
cmp eax, 1
jne case.default.0x401e31
mov eax, dword [0x4050fc]
test eax, eax
je 0x401f52
mov esi, dword [eax + 8]
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
mov eax, esi
test esi, esi
jne 0x401f40
mov dword [0x4050fc], 0
mov dword [0x4050e0], 0
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
jmp case.default.0x401e31
push 0x4050e4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 1
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x4020d0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
push edi
push esi
mov esi, dword [0x403040]
movzx ecx, word [esi]
xor eax, eax
cmp ecx, 0x5a4d
jne 0x402136
mov ecx, dword [esi + 0x3c]
cmp dword [esi + ecx], 0x4550
jne 0x402136
add esi, ecx
movzx ecx, word [esi + 0x18]
cmp ecx, 0x10b
jne 0x402136
movzx ecx, word [esi + 6]
test ecx, ecx
je 0x402136
mov edx, dword [esp + 0xc]
sub edx, dword [0x403040]
movzx edi, word [esi + 0x14]
add esi, edi
add esi, 0x18
jmp 0x402126
add esi, 0x28
dec ecx
je 0x402136
mov edi, dword [esi + 0xc]
cmp edi, edx
ja 0x402120
add edi, dword [esi + 8]
cmp edi, edx
jbe 0x402120
mov eax, esi
pop esi
pop edi
ret
Function at 0x45cf90
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x32000]
push edi
or ebp, 0xffffffff
jmp 0x45cfb2
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x45cfb9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x45cfa8
mov eax, 1
add ebx, ebx
jne 0x45cfcb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x45cfc0
jne 0x45cfdc
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x45cfc0
xor ecx, ecx
sub eax, 3
jb 0x45cff0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x45d062
mov ebp, eax
add ebx, ebx
jne 0x45cffb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x45d008
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x45d02c
inc ecx
add ebx, ebx
jne 0x45d018
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x45d00d
jne 0x45d029
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x45d00d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x45d04c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x45d03d
jmp 0x45cfae
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x45d04c
add edi, ecx
jmp 0x45cfae
pop esi
mov edi, esi
mov ecx, 0x57
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x45d06a
cmp byte [edi], 0x35
jne 0x45d06a
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x45d06f
lea edi, [esi + 0x5a000]
mov eax, dword [edi]
or eax, eax
je 0x45d0de
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x5d25c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x5d2d0]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x45d09c
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x5d2d8]
or eax, eax
je 0x45d0d8
mov dword [ebx], eax
add ebx, 4
jmp 0x45d0b9
call dword [esi + 0x5d2d4]
mov ebp, dword [esi + 0x5d2dc]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1f7]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x45d112
sub esp, 0xffffff80
jmp 0x42c0f0
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404369

Function at 0x4025e7
Capabilities:
Accept command line arguments
Parse pe header

Disassembly:
push 0x14
push 0x40f530
call fcn.00403770
mov eax, 0x5a4d
cmp word [0x400000], ax
jne 0x4024e7
mov eax, dword [0x40003c]
cmp dword [eax + 0x400000], 0x4550
jne 0x4024e7
mov ecx, 0x10b
cmp word [eax + 0x400018], cx
jne 0x4024e7
cmp dword [eax + 0x400074], 0xe
jbe 0x4024e7
xor ecx, ecx
cmp dword [eax + 0x4000e8], ecx
setne cl
mov dword [ebp - 0x1c], ecx
jmp 0x4024eb
and dword [ebp - 0x1c], 0
push 1
call fcn.00409a27
pop ecx
test eax, eax
jne 0x4024ff
push 0x1c
call fcn.00409a27
pop ecx
call fcn.00405287
test eax, eax
jne 0x402510
push 0x10
call fcn.00409a27
pop ecx
call fcn.00405952
and dword [ebp - 4], 0
call fcn.004032ff
test eax, eax
jge 0x40252a
push 0x1b
call fcn.00409a27
pop ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x412ba0], eax
call fcn.00409a27
mov dword [0x41203c], eax
call fcn.00409a27
test eax, eax
jge 0x402550
push 8
call fcn.00409a27
pop ecx
call fcn.00405fde
test eax, eax
jge 0x402561
push 9
call fcn.00409a27
pop ecx
push 1
call fcn.00409a27
pop ecx
test eax, eax
je 0x402574
push eax
call fcn.00409a27
pop ecx
mov eax, dword [0x412018]
mov dword [0x41201c], eax
push eax
push dword [0x412010]
push dword [0x41200c]
call main
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], 0
jne 0x4025a2
push eax
call fcn.00409a27
call fcn.00402400
jmp 0x4025d7
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x20]
call fcn.004037b5
ret
call fcn.00409a27
jmp 0x402495

Function at 0x409a27
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
pushal
call 0x409a36
pop dword [ebp - 0xc]
mov eax, 0xa6aa2850
sub eax, 0xa6698e1a
sub dword [ebp - 0xc], eax
push 0x40
push 0x1000
push 0x337aa
push 0
mov eax, 0x3a7ce8ac
add eax, 0xc5c3f82c
add eax, dword [ebp - 0xc]
call dword [eax]
mov ecx, 0x74719665
sub ecx, 0x7471656f
xor esi, esi
add esi, eax
mov edi, 0xad3070b2
add edi, 0x5310cb12
add edi, dword [ebp - 0xc]
mov edx, 0xe84751e6
sub dword [ebp - 8], 0x4e914128
mov ebx, dword [edi]
xor dword [ebp - 4], 0x967df860
sub ebx, edx
sub dword [ebp - 8], 0x827f30a9
mov dword [esi], ebx
add esi, 0x46af08af
sub esi, 0x46af08ab
add edi, 4
loop 0x409a91
add eax, 0xb6ab
xor ebx, ebx
add ebx, eax
add eax, 0x9d427f3c
sub eax, 0x9d427f37
mov ecx, 0xf131d781
sub ecx, 0xf0f1d781
add ecx, dword [ebp - 0xc]
call ebx
leave
ret