joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4960e0
Capabilities:
Resolve dns

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x1c]
push ebp
xor ebp, ebp
mov dword [esp + 4], ebp
mov dword [eax], ebp
lea eax, [esp + 8]
push eax
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.DLL_getaddrinfo]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x496273
push ebx
push edi
mov edi, dword [esp + 0x10]
test edi, edi
je 0x49625d
push esi
mov eax, dword [edi + 4]
cmp eax, 2
jne 0x49612f
lea ebx, [eax + 0xe]
jmp 0x49613b
cmp eax, 0x17
jne 0x4961ea
lea ebx, [eax + 5]
cmp dword [edi + 0x18], 0
je 0x4961ea
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4961ea
cmp eax, ebx
jb 0x4961ea
push 0x20
call dword [0x4fa330]
mov esi, eax
add esp, 4
test esi, esi
je 0x496252
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
push ebx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
call dword [0x4fa330]
add esp, 4
mov dword [esi + 0x18], eax
test eax, eax
je 0x496241
push ebx
push dword [edi + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x4961d5
push eax
call dword [0x4fa33c]
add esp, 4
mov dword [esi + 0x14], eax
test eax, eax
je 0x496227
test ebp, ebp
jne 0x4961db
mov ebp, esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4961e6
mov dword [eax + 0x1c], esi
mov dword [esp + 0x10], esi
mov edi, dword [edi + 0x1c]
test edi, edi
jne 0x496122
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
pop esi
test eax, eax
je 0x496209
push eax
call dword [sym.imp.WS2_32.DLL_freeaddrinfo]
test ebx, ebx
je 0x496259
push ebp
call fcn.004960a0
mov eax, dword [esp + 0x2c]
add esp, 4
xor ebp, ebp
mov dword [eax], ebp
mov eax, ebx
pop edi
pop ebx
pop ebp
add esp, 0xc
ret
push dword [esi + 0x18]
mov ebx, 8
call dword [0x4fa334]
push esi
call dword [0x4fa334]
add esp, 8
jmp 0x4961f9
push esi
mov ebx, 8
call dword [0x4fa334]
add esp, 4
jmp 0x4961f9
mov ebx, 8
jmp 0x4961f9
test ebp, ebp
jne 0x496269
mov ebx, 0x2af9
push ebx
call dword [sym.imp.WSOCK32.DLL_WSASetLastError]
mov eax, dword [esp + 0x28]
pop edi
mov dword [eax], ebp
mov eax, ebx
pop ebx
pop ebp
add esp, 0xc
ret

Function at 0x4966c0
Capabilities:
Create udp socket

Disassembly:
mov eax, dword [esp + 4]
cmp dword [eax + 0x264], 2
je fcn.00496670
mov al, 1
ret
Function at 0x49d060
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x34
push edi
test ecx, ecx
je 0x49e696
mov edi, dword [ecx + 0x1c]
mov dword [esp + 0x14], edi
test edi, edi
je 0x49e696
cmp dword [ecx + 0xc], 0
je 0x49e696
cmp dword [ecx], 0
jne 0x49d098
cmp dword [ecx + 4], 0
jne 0x49e696
cmp dword [edi], 0xb
jne 0x49d0a3
mov dword [edi], 0xc
mov eax, dword [ecx + 0xc]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x10]
push ebx
mov ebx, dword [ecx]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], eax
xor eax, eax
push ebp
mov ebp, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x38], ebp
push esi
mov esi, dword [edi + 0x3c]
cmp eax, 0x1e
ja 0x49da15
lea ebx, [edi + 0x54]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x14]
jmp 0x49d0f0
jmp dword [eax*4 + 0x49e6a0]
pop esi
pop ebp
pop ebx
mov eax, 0xfffffffe
pop edi
add esp, 0x34
ret
mov eax, 0xfffffffe
pop edi
add esp, 0x34
ret
Function at 0x7732c2a0
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
movzx ebx, word [ecx + 6]
add eax, 0x18
add eax, ecx
test ebx, ebx
je 0x7732c2de
mov edi, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
cmp edi, esi
jb 0x7732c2d6
mov ecx, dword [eax + 8]
add ecx, esi
cmp edi, ecx
jb 0x7732c2e0
inc edx
add eax, 0x28
cmp edx, ebx
jb 0x7732c2c6
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x7732c3b0
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x7732c3e1
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x7732c3e1
mov ecx, 0x10b
cmp word [eax + 0x18], cx
jne 0x7732c3e1
mov eax, 1
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x401a22
Capabilities:
Hide graphical window

Disassembly:
mov ecx, 0xfffffffe
jmp fcn.0040161c
Function at 0x10018d60
Capabilities:
Packed with generic packer

Disassembly:
cmp byte [esp + 8], 1
jne 0x10018f24
pushal
mov esi, section.UPX1
lea edi, [esi - 0xc000]
push edi
or ebp, 0xffffffff
jmp 0x10018d8a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x10018d91
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x10018d80
mov eax, 1
add ebx, ebx
jne 0x10018da3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x10018d98
jne 0x10018db4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x10018d98
xor ecx, ecx
sub eax, 3
jb 0x10018dc8
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x10018e3a
mov ebp, eax
add ebx, ebx
jne 0x10018dd3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x10018de0
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x10018e04
inc ecx
add ebx, ebx
jne 0x10018df0
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x10018de5
jne 0x10018e01
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x10018de5
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x10018e24
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x10018e15
jmp 0x10018d86
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x10018e24
add edi, ecx
jmp 0x10018d86
pop esi
mov edi, esi
mov ecx, 0x4e5
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x10018e42
cmp byte [edi], 7
jne 0x10018e42
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 0x10018e47
lea edi, [esi + 0x16000]
mov eax, dword [edi]
or eax, eax
je 0x10018eb6
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x18000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x18028]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x10018e74
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x1802c]
or eax, eax
je 0x10018eb0
mov dword [ebx], eax
add ebx, 4
jmp 0x10018e91
popal
xor eax, eax
ret 0xc
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x10018ee7
cmp al, 0xef
ja 0x10018eda
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x10018ebc
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x10018ec9
mov ebp, dword [esi + 0x18030]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x217]
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 0x10018f1b
sub esp, 0xffffff80
jmp 0x10001e3f
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
nop
nop
mov ecx, 0x77dc7a0f
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x433024
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
mov ecx, 0x62e1154d
nop
nop
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x433084
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
add eax, 4
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219

Function at 0x432001
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..rsrc
nop
mov ebx, 0x40c7d0
nop
mov ecx, 0x5b6e356a
nop
test eax, eax
nop
nop
nop
nop
je 0x43204e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x432024
nop
nop
mov eax, section..data
nop
mov ebx, 0x42f314
nop
mov ecx, 0x6c93221c
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x432084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43206c
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x431219
Function at 0x46de27
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
lea eax, [ebp - 0x298]
push esi
push edi
push eax
push 0x101
mov edi, edx
mov esi, ecx
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
jne 0x46dee6
push 0x100
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.WSOCK32.dll_gethostname]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.WSOCK32.dll_gethostbyname]
test eax, eax
je 0x46dee6
mov eax, dword [eax + 0xc]
xor ecx, ecx
cmp dword [eax], ecx
je 0x46de83
inc ecx
cmp dword [eax + ecx*4], 0
jne 0x46de7c
cmp esi, ecx
jle 0x46de96
push 0x4c68e4
push edi
call fcn.00424983
pop ecx
pop ecx
jmp 0x46dede
push 4
push dword [eax + esi*4 - 4]
lea eax, [ebp - 4]
push eax
call fcn.00420e20
add esp, 0xc
push dword [ebp - 4]
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0042d5f0
or edx, 0xffffffff
lea ecx, [ebp - 0x108]
call fcn.0046ebd1
mov esi, eax
push esi
push edi
call fcn.00424983
push esi
call fcn.0041fe14
add esp, 0x14
call dword [sym.imp.WSOCK32.dll_WSACleanup]
jmp 0x46def3
push 0x49cc08
push edi
call fcn.00424983
pop ecx
pop ecx
pop edi
pop esi
leave
ret

Function at 0x46e199
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46e1ac
test al, 0x10
je 0x46e1ac
mov al, 1
ret
xor al, al
ret

Function at 0x46e1d6
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov eax, ecx
xor esi, esi
mov dword [ebp - 4], eax
mov byte [0x4d139d], 0
mov ebx, edx
test edi, edi
je 0x46e228
mov byte [0x4d139e], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0xc], eax
xor ecx, ecx
lea eax, [ebp + 0x10]
mov dword [ebp - 8], edi
push eax
push ecx
lea eax, [ebp - 0xc]
push eax
push 0x46e6b0
push ecx
push ecx
call fcn.0042d258
mov esi, eax
add esp, 0x18
mov eax, dword [ebp - 4]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edi, eax
test esi, esi
je 0x46e253
push 0xffffffffffffffff
push esi
mov byte [0x4d139e], 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x4d139d], 1
jne 0x46e261
or eax, 0xffffffff
jmp 0x46e263
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x484c3e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x58ac00
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x40
cmp dword [0x5d6894], 1
jge 0x58ac6f
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
je 0x58ac45
mov edx, dword [ebx + 8]
movzx eax, word [edx]
movzx ecx, word [ebx + 0xc]
cmp eax, ecx
je 0x58ac45
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x58ac22
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x58ac5b
mov eax, dword [ebx + 8]
mov dword [ebp - 4], eax
jmp 0x58ac62
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
jmp 0x58ad5f
movzx ecx, word [ebx + 0xc]
movd xmm0, ecx
movaps xmmword [ebp - 0x30], xmm0
pshuflw xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
pshufd xmm0, xmmword [ebp - 0x30], 0
movaps xmmword [ebp - 0x30], xmm0
mov edx, dword [ebx + 8]
and edx, 0xfff
cmp edx, 0xff0
ja 0x58ad30
mov eax, dword [ebx + 8]
movups xmm0, xmmword [eax]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pxor xmm0, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pcmpeqw xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x40]
pcmpeqw xmm0, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [ebp - 0x20]
por xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [ebp - 0x20]
pmovmskb ecx, xmm0
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x58ad25
bsf edx, dword [ebp - 8]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebx + 8]
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
movzx edx, word [ecx]
movzx eax, word [ebx + 0xc]
cmp edx, eax
jne 0x58ad19
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xc], ecx
jmp 0x58ad20
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
jmp 0x58ad5f
mov edx, dword [ebx + 8]
add edx, 0x10
mov dword [ebx + 8], edx
jmp 0x58ad5a
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
movzx edx, word [ebx + 0xc]
cmp ecx, edx
jne 0x58ad43
mov eax, dword [ebx + 8]
jmp 0x58ad5f
mov eax, dword [ebx + 8]
movzx ecx, word [eax]
test ecx, ecx
jne 0x58ad51
xor eax, eax
jmp 0x58ad5f
mov edx, dword [ebx + 8]
add edx, 2
mov dword [ebx + 8], edx
jmp 0x58ac8f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret

Function at 0x488203
Capabilities:
Query environment variable

Disassembly:
jmp 0x572ef1
mov edi, edi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x572f05
xor edi, edi
jmp 0x572f49
push ebx
push esi
call fcn.00572de8
sub eax, esi
sar eax, 1
push 0x40
push str.minkernelcrtsucrt_srcdesktopcrtenvget_environment_from_os.cpp
push 2
lea ebx, [eax + eax]
push ebx
call fcn.00485e2c
mov edi, eax
add esp, 0x14
test edi, edi
je 0x572f36
push ebx
push esi
push edi
call fcn.004849c3
add esp, 0xc
push 2
push 0
call fcn.00483f82
pop ecx
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
pop ebx
mov eax, edi
pop edi
pop esi
ret
Function at 0x564820
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
call fcn.0048382a
mov byte [ebp - 1], al
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x56485e
cmp dword [ebp + 8], 0
je 0x56484c
lea eax, [ebp + 8]
push eax
call fcn.00487fba
add esp, 4
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x56485e
mov eax, 4
jmp 0x56498e
call fcn.004852dd
movzx edx, al
test edx, edx
jne 0x56488c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x56487d
mov dword [ebp - 0xc], 4
jmp 0x564884
mov dword [ebp - 0xc], 3
mov eax, dword [ebp - 0xc]
jmp 0x56498e
movzx eax, byte [ebp - 1]
test eax, eax
je 0x564935
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
push 0
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0x564ce0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
lea ecx, [ebp - 8]
call fcn.00486ce6
lea ecx, [ebp - 8]
call fcn.00483cee
movzx edx, al
test edx, edx
jne 0x5648f7
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x10]
jmp 0x56498e
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.004879de
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
je 0x564922
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x14]
jmp 0x56498e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x18]
jmp 0x56498e
call fcn.0048379e
movzx ecx, al
test ecx, ecx
jne 0x56496e
mov edx, dword [ebp + 0x10]
or edx, 0x200000
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0048534b
add esp, 0x10
jmp 0x56498e
call fcn.0048827b
mov dword [ebp - 0x24], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0048849c
add esp, 0x10
mov esp, ebp
pop ebp
ret
Function at 0x5649f0
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
call fcn.0048382a
mov byte [ebp - 1], al
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x564a2e
cmp dword [ebp + 8], 0
je 0x564a1c
lea eax, [ebp + 8]
push eax
call fcn.00486638
add esp, 4
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x564a2e
mov eax, 4
jmp 0x564b5e
call fcn.004852dd
movzx edx, al
test edx, edx
jne 0x564a5c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x564a4d
mov dword [ebp - 0xc], 4
jmp 0x564a54
mov dword [ebp - 0xc], 3
mov eax, dword [ebp - 0xc]
jmp 0x564b5e
movzx eax, byte [ebp - 1]
test eax, eax
je 0x564b05
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
push 0
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0x564d40
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
lea ecx, [ebp - 8]
call fcn.00486ce6
lea ecx, [ebp - 8]
call fcn.00483cee
movzx edx, al
test edx, edx
jne 0x564ac7
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x10]
jmp 0x564b5e
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.004879de
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
je 0x564af2
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x14]
jmp 0x564b5e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 8]
call fcn.0048544f
mov eax, dword [ebp - 0x18]
jmp 0x564b5e
call fcn.0048379e
movzx ecx, al
test ecx, ecx
jne 0x564b3e
mov edx, dword [ebp + 0x10]
or edx, 0x200000
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x20]
push eax
call fcn.0048566b
add esp, 0x10
jmp 0x564b5e
call fcn.0048827b
mov dword [ebp - 0x24], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.00485b3e
add esp, 0x10
mov esp, ebp
pop ebp
ret
Function at 0x431090
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push ebx
lea eax, [eax + eax*2]
push ebp
xor ebp, ebp
push esi
lea eax, [eax + eax*4]
push edi
mov dword [esp + 0x10], ebp
lea ecx, [ecx + eax*2 + 0x68]
mov ax, word [edx]
shl ax, 3
cmp ax, 0xf800
mov word [ecx], ax
jge 0x4310c8
mov eax, 0xfffff800
jmp 0x4310d8
cmp ax, 0x7ff
jle 0x4310d5
mov eax, 0x7ff
jmp 0x4310d8
movsx eax, ax
mov edi, edx
mov word [ecx], ax
lea esi, [edx + 0x10]
lea eax, [ecx + 2]
sub edi, ecx
mov dword [esp + 0x20], esi
mov ecx, 7
mov bx, word [edi + eax]
add esi, 0x10
mov word [eax], bx
mov bx, word [esi - 0x10]
mov word [eax + 0xe], bx
add eax, 2
dec ecx
jne 0x4310ee
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov esi, 1
mov ax, word [edi]
sub word [edx], ax
mov eax, dword [esp + 0x1c]
cmp dword [ecx + eax*4 + 0x11c], esi
jne 0x431170
mov ebx, edx
lea esi, [edi + 2]
sub ebx, edi
mov edi, 7
mov cx, word [ebx + esi]
add esi, 2
movsx eax, cx
cdq
xor eax, edx
mov dword [esp + 0x18], ecx
sub cx, word [esi - 2]
sub eax, edx
add ebp, eax
movsx eax, cx
cdq
xor eax, edx
mov word [esi - 2], cx
sub eax, edx
mov edx, dword [esp + 0x10]
add edx, eax
dec edi
mov dword [esp + 0x10], edx
jne 0x431132
pop edi
mov eax, ebp
mov ecx, edx
pop esi
pop ebp
sub eax, ecx
pop ebx
pop ecx
ret
mov ebx, dword [esp + 0x20]
mov dx, word [ebx]
add ebx, 0x10
mov cx, dx
mov dword [esp + 0x18], edx
movsx eax, cx
sub cx, word [edi + esi*2]
cdq
xor eax, edx
mov word [edi + esi*2], cx
sub eax, edx
add ebp, eax
movsx eax, cx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x10]
add edx, eax
inc esi
cmp esi, 8
mov dword [esp + 0x10], edx
jb 0x431174
pop edi
mov eax, ebp
mov ecx, edx
pop esi
pop ebp
sub eax, ecx
pop ebx
pop ecx
ret
Function at 0x436fad
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x481f50
cmp edx, dword [eax]
je 0x436fcf
add eax, 8
inc ecx
cmp eax, 0x481fe0
jl 0x436fc0
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x481f50]
jne 0x4370fd
mov eax, dword [0x4dc6e0]
cmp eax, 1
je 0x4370d7
test eax, eax
jne 0x437000
cmp dword [0x481da8], 1
je 0x4370d7
cmp edx, 0xfc
je 0x4370fd
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x437037
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00432f40
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00433640
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x43707a
lea eax, [ebp - 0x1a4]
push eax
call fcn.00433640
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x47c708
push edi
call fcn.00433030
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00432f40
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00432f50
lea eax, [ebp - 0xa0]
push 0x47c6e8
push eax
call fcn.00432f50
push dword [esi + 0x481f54]
lea eax, [ebp - 0xa0]
push eax
call fcn.00432f50
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.0043ad8a
add esp, 0x2c
pop edi
jmp 0x4370fd
lea eax, [ebp + 8]
lea esi, [esi + 0x481f54]
push 0
push eax
push dword [esi]
call fcn.00433640
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret