joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4123af
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edi, dword [ebp + 8]
cmp word [edi], 0x5a4d
jne 0x412424
mov edx, edi
add edx, dword [edi + 0x3c]
cmp word [edx], 0x4550
jne 0x412424
mov dword [ebp - 0xc], edx
mov eax, dword [edx + 0x78]
add eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [eax + 0x20]
add eax, dword [ebp + 8]
mov dword [ebp - 4], eax
xor ecx, ecx
mov edx, dword [ebp - 8]
cmp ecx, dword [edx + 0x18]
jge 0x412424
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + ecx*4]
add ebx, dword [ebp + 8]
push dword [ebp + 0xc]
push ebx
call fcn.00412180
cmp eax, 1
je 0x412404
inc ecx
jmp 0x4123e2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
add eax, dword [ebp + 8]
xor ebx, ebx
mov bx, word [eax + ecx*2]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1c]
add eax, dword [ebp + 8]
mov edx, dword [eax + ebx*4]
add edx, dword [ebp + 8]
jmp 0x412426
xor eax, eax
mov esp, ebp
pop ebp
ret 8

Function at 0x4124e6
Capabilities:
Execute anti-debugging instructions

Disassembly:
push eax
mov edi, eax
mov esi, 0x412020
mov ecx, dword [0x4115b8]
shr ecx, 1
dec ecx
mov bl, byte [0x4115bc]
rdtsc
push eax
mov bh, byte [esi]
inc esi
mov byte [edi], bh
inc edi
mov al, byte [esi]
stosb byte es:[edi], al
add byte [edi - 1], bl
inc esi
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
loop 0x412506
rdtsc
pop edx
sub eax, edx
pop edx
push edx
push 0
push 0
push 0x4119dc
call dword [fcn.00411c2a]
push 0x4119a1
push eax
call dword [fcn.00411c3a]
mov dword [fcn.00411c1e], eax
push 0
push 2
push 0x4119da
push 0x4119b0
call dword [fcn.00411c1e]
pop edx
sub edx, eax
ret
Function at 0x402910
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
cmp ecx, 0x22
jne 0x402969
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
test ecx, ecx
je 0x402953
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
cmp eax, 0x22
je 0x402953
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
jmp 0x402933
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
cmp eax, 0x22
jne 0x402967
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
jmp 0x40297f
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
cmp eax, 0x20
jle 0x40297f
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
jmp 0x402969
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
test eax, eax
je 0x40299f
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
cmp edx, 0x20
jg 0x40299f
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x40297f
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.00402a40
push 0x404004
push section..data
call fcn.00402a10
add esp, 8
mov edx, dword [ebp - 0x1c]
and edx, 1
je 0x4029d8
movzx eax, word [ebp - 0x18]
mov dword [ebp - 0x54], eax
jmp 0x4029df
mov dword [ebp - 0x54], 0xa
mov ecx, dword [ebp - 0x54]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
mov dword [ebp - 0x50], eax
call fcn.00402ab0
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x4023f0
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
enter 0x130, 0
push ebx
push ecx
push edx
push 1
call sub.user32.dll_IsClipboardFormatAvailable
test al, al
je 0x4024a8
push 0
call sub.user32.dll_OpenClipboard
test al, al
je 0x4024a8
push 1
call sub.user32.dll_GetClipboardData
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40249f
push eax
call sub.kernel32.dll_GlobalLock
mov dword [ebp - 0x10], eax
test eax, eax
je 0x40249f
mov bl, byte [0x405424]
test bl, bl
je 0x402452
push 1
push 0x4043cd
push dword [ebp - 0x10]
push 0
call sub.user32.dll_MessageBoxA
cmp eax, 1
je 0x402452
jmp 0x402497
lea eax, [ebp - 0x12e]
push eax
push 0x405324
call fcn.00401e60
lea ebx, [ebp - 0x12e]
push ebx
push 1
call fcn.004025d0
lea eax, [ebp - 0x12e]
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x10]
call fcn.004025b0
push eax
push 0
call fcn.004024b0
lea eax, [ebp - 0x12e]
push eax
call fcn.00401d90
push dword [ebp - 0xc]
call sub.kernel32.dll_GlobalUnlock
call sub.user32.dll_CloseClipboard
test al, al
jne 0x4024a8
pop edx
pop ecx
pop ebx
leave
ret
Function at 0x40c630
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0xa000]
push edi
or ebp, 0xffffffff
jmp 0x40c652
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x40c659
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x40c648
mov eax, 1
add ebx, ebx
jne 0x40c66b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x40c660
jne 0x40c67c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40c660
xor ecx, ecx
sub eax, 3
jb 0x40c690
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x40c702
mov ebp, eax
add ebx, ebx
jne 0x40c69b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x40c6a8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x40c6cc
inc ecx
add ebx, ebx
jne 0x40c6b8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x40c6ad
jne 0x40c6c9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40c6ad
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x40c6ec
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x40c6dd
jmp 0x40c64e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x40c6ec
add edi, ecx
jmp 0x40c64e
pop esi
lea edi, [esi + 0xa000]
mov eax, dword [edi]
or eax, eax
je 0x40c74b
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xc000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xc03c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x40c709
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xc040]
or eax, eax
je 0x40c745
mov dword [ebx], eax
add ebx, 4
jmp 0x40c726
call dword [esi + 0xc050]
mov ebp, dword [esi + 0xc044]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1ff]
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 0x40c77f
sub esp, 0xffffff80
jmp 0x40a71c

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

Disassembly:
pushal
call 0x43000c
nop
nop
pop eax
nop
nop
nop
add eax, 0x403d6a
nop
nop
sub eax, 0x403d10
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
add ebx, 4
nop
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x430030
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x40333c
Capabilities:
Accept command line arguments
Parse pe header

Disassembly:
push 0x14
push 0x410aa0
call fcn.00406024
mov eax, 0x5a4d
cmp word [0x400000], ax
jne 0x40323d
mov eax, dword [0x40003c]
cmp dword [eax + 0x400000], 0x4550
jne 0x40323d
mov ecx, 0x10b
cmp word [eax + 0x400018], cx
jne 0x40323d
cmp dword [eax + 0x400074], 0xe
jbe 0x40323d
xor ecx, ecx
cmp dword [eax + 0x4000e8], ecx
setne cl
mov dword [ebp - 0x1c], ecx
jmp 0x403241
and dword [ebp - 0x1c], 0
push 1
call main
pop ecx
test eax, eax
jne 0x403255
push 0x1c
call main
pop ecx
call fcn.00407199
test eax, eax
jne 0x403266
push 0x10
call main
pop ecx
call fcn.00406d3d
and dword [ebp - 4], 0
call fcn.00403bed
test eax, eax
jge 0x403280
push 0x1b
call main
pop ecx
call sub.kernel32.dll_GetCommandLineW
mov dword [0x413d00], eax
call fcn.00406ce0
mov dword [0x412ff8], eax
call main
test eax, eax
jge 0x4032a5
push 8
call main
pop ecx
call fcn.00406a03
test eax, eax
jge 0x4032b6
push 9
call main
pop ecx
push 1
call main
pop ecx
test eax, eax
je 0x4032c9
push eax
call main
pop ecx
mov eax, dword [0x413340]
mov dword [0x413344], eax
push eax
push dword [0x413334]
push dword [0x41332c]
call main
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], 0
jne 0x4032f7
push eax
call main
call fcn.0040428b
jmp 0x40332c
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x20]
call fcn.00406069
ret
call main
jmp 0x4031eb

Function at 0x40b720
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
pushal
call 0x40b72f
pop dword [ebp - 0x28]
mov eax, 0x434bcc55
sub eax, 0x430b1526
sub dword [ebp - 0x28], eax
push 0x40
push 0x1000
push 0x3a996
push 0
mov eax, 0x2a7bde88
sub eax, 0x2a3afd68
add eax, dword [ebp - 0x28]
call dword [eax]
mov ecx, 0xb6d979e9
sub ecx, 0xb6d92cda
mov ebx, eax
mov esi, 0x8367849b
sub esi, 0x83260c9b
add esi, dword [ebp - 0x28]
mov edi, 0xe576a23a
add dword [ebp - 0x14], 0x30abcdd1
mov edx, dword [esi]
mov dword [ebp - 0xc], 0x6a3ec3ff
add edx, edi
xor dword [ebp - 0x10], eax
mov dword [ebx], edx
add dword [ebp - 0x10], eax
add ebx, 0x663da205
sub ebx, 0x663da201
add esi, 0x520fd441
sub esi, 0x520fd43d
loop 0x40b788
add eax, 0x322743bd
sub eax, 0x32261cae
mov ebx, eax
add eax, 0x1535d5bf
sub eax, 0x1535d5ba
mov ecx, 0x400000
add ecx, dword [ebp - 0x28]
call ebx
leave
ret
Function at 0x403d39
Capabilities:
Encode data using xor

Disassembly:
push esi
xor esi, esi
cmp dword [esp + 0xc], esi
jbe 0x403e84
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegDisablePredefinedCacheEx]
push edi
mov edi, dword [esp + 0x10]
call ebx
add byte [esi + edi], 2
call ebx
add byte [esi + edi], 0x98
call ebx
xor byte [esi + edi], 0xe8
call ebx
add byte [esi + edi], 0xd7
call ebx
add byte [esi + edi], 0x41
call ebx
add byte [esi + edi], 0xbb
call ebx
add byte [esi + edi], 0x8a
call ebx
xor byte [esi + edi], 0x2c
call ebx
add byte [esi + edi], 0x31
call ebx
add byte [esi + edi], 0x41
call ebx
xor byte [esi + edi], 0x56
call ebx
add byte [esi + edi], 0x34
call ebx
add byte [esi + edi], 0xbe
call ebx
add byte [esi + edi], 0x5d
call ebx
add byte [esi + edi], 0x52
call ebx
add byte [esi + edi], 0x14
call ebx
xor byte [esi + edi], 0x31
call ebx
add byte [esi + edi], 0xb5
call ebx
add byte [esi + edi], 0xe8
call ebx
add byte [esi + edi], 0x86
call ebx
add byte [esi + edi], 0x51
call ebx
add byte [esi + edi], 0x8b
call ebx
inc byte [esi + edi]
call ebx
add byte [esi + edi], 0xb3
call ebx
add byte [esi + edi], 0xd6
call ebx
xor byte [esi + edi], 0x9a
call ebx
add byte [esi + edi], 0x73
call ebx
add byte [esi + edi], 0xc9
call ebx
add byte [esi + edi], 0xc4
call ebx
add byte [esi + edi], 0x64
call ebx
add byte [esi + edi], 0x4a
call ebx
xor byte [esi + edi], 0xb3
call ebx
xor byte [esi + edi], 0x92
call ebx
xor byte [esi + edi], 0xd5
call ebx
add byte [esi + edi], 0x88
call ebx
add byte [esi + edi], 0x6d
call ebx
xor byte [esi + edi], 0xfb
call ebx
add byte [esi + edi], 0xfb
call ebx
add byte [esi + edi], 0xf7
call ebx
xor byte [esi + edi], 2
call ebx
add byte [esi + edi], 0x82
call ebx
xor byte [esi + edi], 0x9e
call ebx
add byte [esi + edi], 0x55
call ebx
xor byte [esi + edi], 0x5e
call ebx
add byte [esi + edi], 0x7d
call ebx
xor byte [esi + edi], 0xc3
call ebx
add byte [esi + edi], 0x2d
call ebx
add byte [esi + edi], 0x32
call ebx
add byte [esi + edi], 0x9c
inc esi
cmp esi, dword [esp + 0x14]
jb 0x403d52
pop edi
pop ebx
pop esi
ret

Function at 0x403f0e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x20
mov eax, dword [0x42a8ec]
xor eax, esp
mov dword [esp + 0x1c], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
xor ebp, ebp
push edi
mov eax, dword [esi + 0x3c]
mov ebx, dword [eax + esi + 0x78]
add ebx, esi
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add edi, esi
mov dword [esp + 0x10], eax
test eax, eax
je 0x403f77
mov eax, dword [edi]
lea ecx, [esp + 0x14]
add eax, esi
push eax
call fcn.00401b44
lea eax, [esp + 0x14]
push 0x14d
push eax
call fcn.004040e5
pop ecx
pop ecx
cmp eax, dword [esp + 0x38]
je 0x403f8f
lea ecx, [esp + 0x14]
add edi, 4
call fcn.00403ab2
inc ebp
cmp ebp, dword [esp + 0x10]
jb 0x403f3f
xor edi, edi
mov ecx, dword [esp + 0x2c]
lea eax, [esi + edi]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00405f4b
add esp, 0x20
ret
mov eax, dword [ebx + 0x24]
lea eax, [eax + ebp*2]
movzx ecx, word [eax + esi]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + esi]
lea ecx, [esp + 0x14]
call fcn.00403ab2
jmp 0x403f79
Function at 0x4040e5
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
lea ebp, [esi + 0x10]
mov edi, dword [ebp]
mov ebx, edi
xor ebx, dword [esp + 0x1c]
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x10], ebp
jb 0x40410a
mov esi, dword [esi]
mov dword [esp + 0x18], esi
push esi
shr edi, 2
push edi
push str._x_and__p
call fcn.004043b9
add esp, 0xc
test edi, edi
je 0x404165
mov ebp, esi
mov esi, edi
push 4
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.00406ab0
imul ecx, dword [esp + 0x28], 0x5bd1e991
add esp, 0xc
imul ebx, ebx, 0x5bd1e991
add ebp, 4
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul eax, eax, 0x5bd1e991
xor ebx, eax
mov dword [esp + 0x1c], eax
sub esi, 1
jne 0x404124
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp]
xor ecx, ecx
and eax, 3
sub eax, 1
je 0x40418e
sub eax, 1
je 0x404184
sub eax, 1
jne 0x40419c
movsx ecx, byte [esi + edi*4 + 2]
shl ecx, 0x10
movsx eax, byte [esi + edi*4 + 1]
shl eax, 8
xor ecx, eax
movsx eax, byte [esi + edi*4]
xor eax, ecx
imul eax, eax, 0x5bd1e991
xor ebx, eax
mov eax, ebx
shr eax, 0xd
xor eax, ebx
imul ecx, eax, 0x5bd1e991
pop edi
pop esi
pop ebp
pop ebx
mov eax, ecx
shr eax, 0xf
xor eax, ecx
pop ecx
ret

Function at 0x4041c2
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push esi
push edi
push 1
call dword [sym.imp.USER32.dll_GetClipCursor]
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov edi, dword fs:[0x30]
mov edi, dword [edi + 0xc]
mov esi, dword [edi + 0xc]
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov dword [0x42bea0], eax
pop edi
pop esi
ret

Function at 0x4066de
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40671d
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x40671d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x40671d
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x40671d
cmp dword [ecx + 0x74], 0xe
jbe 0x40671d
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x40d09a
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x41bd28
push 0x41bd20
push str.FlsAlloc
push 0x1e
call fcn.0040cf5b
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40d0ce
push dword [ebp + 8]
mov ecx, esi
call dword [0x419184]
call esi
jmp 0x40d0d4
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x40d118
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x41bd38
push 0x41bd30
push str.FlsGetValue
push 0x20
call fcn.0040cf5b
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40d14f
push dword [ebp + 8]
mov ecx, esi
call dword [0x419184]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]
Function at 0x423ea0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x423ecd
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x423ecd
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x403e4a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
pushal
call 0x403e59
pop dword [ebp - 0x38]
mov eax, 0x47650afb
add eax, 0xb8db335e
sub dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x157d0fd
add dword [ebp - 0x48], 0x4cfa744e
mov dword [ebp - 0x44], 0xb609fcea
add dword [ebp - 0x44], 0x7c294f5b
mov dword [ebp - 0x40], 0x32ed6e9b
add dword [ebp - 0x40], 0x195ed593
mov dword [ebp - 0x3c], 0x6d124f0d
sub dword [ebp - 0x3c], 0x6d124f0d
lea eax, [ebp - 0x48]
push eax
mov eax, 0x714ff82a
sub eax, 0x710f779e
add eax, dword [ebp - 0x38]
call dword [eax]
mov dword [ebp - 0x48], 0xcd0ebd95
add dword [ebp - 0x48], 0xa763abc1
mov dword [ebp - 0x44], 0xdb60cc89
sub dword [ebp - 0x44], 0x99f46b14
mov dword [ebp - 0x40], 0x21c1b229
sub dword [ebp - 0x40], 0xbe5245bd
mov dword [ebp - 0x3c], 0xb99c01cc
add dword [ebp - 0x3c], 0x4663fe34
lea ebx, [ebp - 0x48]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x38]
call dword [eax]
push 0x40
push 0x1000
push 0x37cad
push 0
call eax
mov ecx, 0xca4e2e7c
sub ecx, 0xca4de24e
mov edi, eax
mov esi, 0xff364d22
add esi, 0x10ac2de
add esi, dword [ebp - 0x38]
mov ebx, 0x2c4f6d04
sub ebx, 0x3dd965eb
sub dword [ebp - 0x14], 0xf6865d25
mov edx, dword [esi]
add dword [ebp - 0x24], edx
xor edx, ebx
mov dword [ebp - 0xc], 0x5e430d07
mov dword [edi], edx
add dword [ebp - 0x14], 0xac0494c2
add edi, 0x2843a6fc
sub edi, 0x2843a6f8
add esi, 0xe78b2367
sub esi, 0xe78b2363
loop 0x403f76
add eax, 0x1238b
mov ebx, eax
add eax, 0x539718c3
sub eax, 0x539718be
mov ecx, 0x400000
add ecx, dword [ebp - 0x38]
call ebx
leave
ret
Function at 0x401000
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x10]
push ebx
push esi
xor esi, esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], eax
cmp esi, dword [ebp + 0x10]
jge 0x401191
mov eax, dword [ebp - 0x10]
push 3
pop edx
cmp eax, edx
mov dword [ebp - 0xc], edx
jge 0x401032
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov eax, 0x3d3d3d3d
lea edi, [ebp - 4]
stosw word es:[edi], ax
test ecx, ecx
stosb byte es:[edi], al
jle 0x401059
mov eax, dword [ebp + 8]
lea edi, [ebp - 4]
add esi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, edx
rep movsb byte es:[edi], byte [esi]
mov cl, byte [ebp - 4]
mov al, cl
shr al, 2
test ebx, ebx
mov byte [ebp - 1], al
je 0x40108e
mov edi, dword [ebp + 0x14]
test edi, edi
jle 0x401096
mov eax, ebx
mov esi, dword [ebp + 0xc]
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401099
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
jmp 0x401099
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
jmp 0x401099
mov esi, dword [ebp + 0xc]
movzx eax, byte [ebp - 1]
mov edx, dword [str.Ll_f_]
and cl, 3
shl cl, 4
mov al, byte [eax + edx]
mov byte [ebx + esi], al
mov al, byte [ebp - 3]
mov dl, al
inc ebx
shr dl, 4
add cl, dl
test ebx, ebx
je 0x4010df
test edi, edi
jle 0x4010df
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x4010dc
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
mov al, byte [ebp - 3]
mov edx, dword [str.Ll_f_]
and al, 0xf
movzx ecx, cl
shl al, 2
mov cl, byte [ecx + edx]
mov byte [ebx + esi], cl
mov cl, byte [ebp - 2]
mov dl, cl
inc ebx
shr dl, 6
add al, dl
test ebx, ebx
mov byte [ebp - 1], al
je 0x401123
test edi, edi
jle 0x401123
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401123
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
movzx eax, byte [ebp - 1]
mov edx, dword [str.Ll_f_]
mov al, byte [eax + edx]
mov byte [ebx + esi], al
inc ebx
cmp dword [ebp - 0xc], 2
jg 0x40113f
mov byte [ebx + esi - 1], 0x3d
and cl, 0x3f
test ebx, ebx
je 0x401164
test edi, edi
jle 0x401164
mov eax, ebx
sub eax, dword [ebp - 8]
cdq
idiv edi
test edx, edx
jne 0x401164
mov byte [ebx + esi], 0xd
inc ebx
mov byte [ebx + esi], 0xa
inc ebx
add dword [ebp - 8], 2
movzx eax, cl
mov ecx, dword [str.Ll_f_]
mov al, byte [eax + ecx]
mov byte [ebx + esi], al
inc ebx
cmp dword [ebp - 0xc], 1
jg 0x40117f
mov byte [ebx + esi - 1], 0x3d
mov esi, dword [ebp - 0x14]
add esi, 3
sub dword [ebp - 0x10], 3
mov dword [ebp - 0x14], esi
jmp 0x401019
pop edi
mov eax, ebx
pop esi
pop ebx
leave
ret
Function at 0x406f66
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push edi
lea eax, [ebp - 4]
xor edi, edi
push eax
push edi
push edi
push 0x4015ff
push edi
push edi
call esi
lea eax, [ebp - 4]
push eax
push edi
push edi
push 0x4060cd
push edi
push edi
call esi
lea eax, [ebp - 4]
push eax
push edi
push edi
push 0x40684b
push edi
push edi
call esi
lea eax, [ebp - 4]
push eax
push edi
push edi
push 0x405e44
push edi
push edi
call esi
lea eax, [ebp - 4]
push eax
push edi
push edi
push 0x406e45
push edi
push edi
call esi
lea eax, [ebp - 4]
push eax
push edi
push edi
push 0x406a3b
push edi
push edi
call esi
xor ebx, ebx
lea eax, [ebp - 4]
push eax
push edi
push ebx
push 0x4069ee
push edi
push edi
call esi
inc ebx
cmp ebx, 0x1a
jl 0x406fd1
call fcn.00406dbf
pop edi
pop esi
pop ebx
leave
ret

Function at 0x407056
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
lea eax, [ebp - 0x1a0]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
call fcn.004053e8
test eax, eax
je 0x4070cb
call fcn.0040686a
cmp byte [str.O__], 0
je 0x407094
push str.O__
call fcn.004058ed
test eax, eax
pop ecx
jne 0x4070cb
cmp dword [0x491ea0], 0
je 0x4070bd
and dword [ebp - 8], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x491984
push eax
mov dword [ebp - 0xc], 0x407037
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
call fcn.00404b20
test eax, eax
je 0x4070cb
call fcn.00406f66
xor eax, eax
leave
ret 0x10