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

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6c90875c
sub esp, 0x1c
mov ecx, dword [esp + 0x30]
mov ebx, ecx
shr ebx, 3
mov ebp, dword [esp + 0x24]
cmp ebp, ebx
jge 0x6c9085bc
mov eax, ebp
jmp 0x6c9085c0
mov eax, ebp
mov ebp, ebx
mov edx, dword [esp + 0x28]
cmp edx, ebp
jb 0x6c908754
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
jmp 0x6c90866f
mov ecx, edi
sub ecx, ebx
neg ecx
sar ecx, 0x1f
and ebx, ecx
movzx ecx, byte [esi + ebx]
and ecx, 0xffffff80
movzx edx, byte [esi + ebx + 1]
and edx, 0xffffff80
shr dl, 1
or edx, ecx
movzx ecx, byte [esi + ebx + 2]
and ecx, 0xffffff80
shr cl, 2
or ecx, edx
movzx edx, byte [esi + ebx + 3]
and edx, 0xffffff80
shr dl, 3
or edx, ecx
movzx ecx, byte [esi + ebx + 4]
and ecx, 0xffffff80
shr cl, 4
or ecx, edx
movzx edx, byte [esi + ebx + 5]
and edx, 0xffffff80
shr dl, 5
or edx, ecx
movzx ecx, byte [esi + ebx + 6]
and ecx, 0xffffff80
shr cl, 6
or ecx, edx
movzx edx, byte [esi + ebx + 7]
and edx, 0xffffff80
shr dl, 7
or edx, ecx
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x20]
mov byte [ebx + ecx], dl
inc ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 8]
cmp ebx, ebp
jge 0x6c908692
shl ebx, 3
lea ecx, [ebx + 8]
cmp edi, ecx
jb 0x6c90874d
cmp ebx, ecx
jbe 0x6c9085eb
jmp 0x6c908746
cmp eax, ebp
jb 0x6c90873d
mov ebx, ebp
shl ebp, 3
sub edx, ebx
neg edx
sar edx, 0x1f
sub eax, ebx
and edx, ebx
cmp ecx, ebp
jb 0x6c908736
sub edi, ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ebp
sub ecx, ebp
add esi, edi
test eax, eax
je 0x6c9086f2
test ecx, ecx
je 0x6c9086f2
movzx eax, byte [esp + 0x38]
test al, al
je 0x6c9086e4
mov eax, 0xffffffff
shr al, cl
cmp ecx, 8
sbb ebp, ebp
and eax, ebp
jmp 0x6c9086e6
xor eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ecx
xor ebp, ebp
jmp 0x6c908724
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
add esp, 0x1c
ret
movzx edi, byte [ebp + esi]
and edi, 0xffffff80
mov ecx, ebp
xchg edi, eax
shr al, cl
xchg edi, eax
lea ebx, [ecx + 1]
cmp ecx, 8
sbb ecx, ecx
and ecx, edi
or eax, ecx
mov edi, dword [esp + 0x14]
mov ecx, edi
mov ebp, ebx
mov ebx, dword [esp + 0x18]
cmp ebp, ecx
jl 0x6c9086fe
mov ecx, dword [esp + 0x20]
mov byte [ecx + edx], al
inc ebx
mov ebp, dword [esp + 0x30]
jmp 0x6c9086f2
mov eax, ebp
call fcn.6c82c140
mov ecx, eax
mov eax, ebp
call fcn.6c82c140
mov eax, ebx
call fcn.6c82c140
mov edx, edi
call fcn.6c82c120
mov ecx, ebp
call fcn.6c82c120
nop
call fcn.6c82ac40
jmp fcn.6c908590
Function at 0x6c9142d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6c9144ac
sub esp, 0x7c
lea edi, [esp + 0x1c]
mov esi, dword [esp + 0x80]
call fcn.6c82c77c
lea eax, [esp + 0x1c]
mov dword [esp], eax
call fcn.6c913d70
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea edi, [esp + 0x54]
xor eax, eax
call fcn.6c82c2c6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
xor ecx, ecx
jmp 0x6c914380
mov edx, dword [esp + 0x48]
lea ecx, [edx + 1]
cmp ecx, 5
jge 0x6c91444a
mov dword [esp + 0x48], ecx
lea edx, [esp + ecx*8 + 0x54]
mov ebx, dword [edx]
mov dword [esp + 0x44], ebx
mov edx, dword [edx + 4]
imul ebp, ecx, 0x33
mov esi, ebp
sar ebp, 0x1f
shr ebp, 0x1d
add ebp, esi
mov dword [esp + 0x50], ebp
and ebp, 0xfffffff8
sub esi, ebp
mov ecx, esi
shl ebx, cl
shl edx, cl
mov dword [esp + 0x4c], edx
lea ebp, [ecx - 0x20]
mov ecx, ebp
mov edi, dword [esp + 0x44]
shl edi, cl
neg ecx
mov edx, dword [esp + 0x44]
shr edx, cl
cmp ebp, 0x20
sbb ebp, ebp
and edi, ebp
cmp esi, 0x20
sbb ebp, ebp
and ebx, ebp
mov dword [esp + 0x18], ebx
mov byte [esp + 8], bl
mov esi, dword [esp + 0x4c]
and esi, ebp
mov ebp, ebx
shr ebx, 8
shr ebp, 0x10
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x18]
shr ebp, 0x18
cmp ecx, 0x20
sbb ecx, ecx
and edx, ecx
or esi, edx
or edi, esi
mov edx, edi
shl edi, 0x18
or edi, ebx
xchg edi, eax
mov byte [esp + 9], al
xchg edi, eax
mov ebx, edx
shl edx, 0x10
mov esi, dword [esp + 0x4c]
or esi, edx
xchg esi, eax
mov byte [esp + 0xa], al
xchg esi, eax
mov edx, ebx
shl ebx, 8
or ebp, ebx
xchg ebp, eax
mov byte [esp + 0xb], al
xchg ebp, eax
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x50]
xor ecx, ecx
jmp 0x6c914484
test byte [eax], al
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 0x20
mov dword [esp + 0x90], 0x20
add esp, 0x7c
ret
test byte [eax], al
movzx ebp, byte [esp + ecx + 0x10]
movzx esi, byte [eax + edx]
or esi, ebp
xchg esi, ebx
mov byte [eax + edx], bl
xchg esi, ebx
inc ecx
mov edx, ebx
cmp ecx, 8
jge 0x6c914379
mov ebx, edx
sar edx, 3
add edx, ecx
cmp edx, 0x20
jge 0x6c914379
jb 0x6c91446d
mov eax, edx
mov ecx, 0x20
call fcn.6c82c0e0
nop
call fcn.6c82ac40
jmp fcn.6c9142d0
Function at 0x6c914580
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6c914704
sub esp, 0x6c
lea edi, [esp + 0x40]
xor eax, eax
call fcn.6c82c2c6
mov ecx, dword [0x6c96b5b0]
lea edx, [esp + 0x40]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 8], ecx
call fcn.6c913f60
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], ecx
lea edi, [esp + 0x14]
xor eax, eax
call fcn.6c82c2c8
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
lea edx, [esp + 0x14]
mov dword [esp + 4], edx
call fcn.6c9142d0
mov ecx, dword [esp + 0xc]
test ecx, ecx
jbe 0x6c9146fa
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx]
mov esi, dword [ebx + 4]
mov edi, dword [esp + 8]
movzx edi, byte [edi]
and edi, 1
mov dword [esp + 0x38], edi
sar edi, 0x1f
nop
xor ebx, ebx
mov eax, dword [esp + 0x38]
sub ebx, eax
mov dword [esp + 0x34], ebx
mov eax, 0
sbb eax, edi
mov dword [esp + 0x3c], eax
and ecx, ebx
and edx, eax
mov edi, ebx
not ebx
not eax
and ebp, ebx
or ecx, ebp
mov ebp, dword [esp + 0x70]
mov dword [ebp], ecx
and esi, eax
or edx, esi
mov dword [ebp + 4], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 8]
and edx, edi
mov esi, dword [ecx + 0xc]
mov edi, dword [esp + 0x3c]
and esi, edi
mov edi, dword [esp + 0x74]
mov ecx, dword [edi + 8]
and ecx, ebx
or ecx, edx
mov edx, dword [edi + 0xc]
mov dword [ebp + 8], ecx
and edx, eax
or edx, esi
mov dword [ebp + 0xc], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x10]
mov esi, dword [esp + 0x34]
and edx, esi
mov esi, dword [ecx + 0x14]
mov ecx, dword [esp + 0x3c]
and esi, ecx
mov ecx, dword [edi + 0x10]
and ecx, ebx
or ecx, edx
mov edx, dword [edi + 0x14]
mov dword [ebp + 0x10], ecx
and edx, eax
or edx, esi
mov dword [ebp + 0x14], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x18]
mov esi, dword [esp + 0x34]
and edx, esi
mov esi, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x3c]
and esi, ecx
mov ecx, dword [edi + 0x18]
and ecx, ebx
or ecx, edx
mov edx, dword [edi + 0x1c]
mov dword [ebp + 0x18], ecx
and edx, eax
or edx, esi
mov dword [ebp + 0x1c], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x20]
mov esi, dword [esp + 0x34]
and esi, edx
mov ecx, dword [ecx + 0x24]
mov edx, dword [esp + 0x3c]
and edx, ecx
mov ecx, dword [edi + 0x20]
and ebx, ecx
or ebx, esi
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x20], ebx
and eax, ecx
or eax, edx
mov dword [ebp + 0x24], eax
mov dword [esp + 0x78], ebp
add esp, 0x6c
ret
xor eax, eax
mov ecx, eax
call fcn.6c82c0e0
nop
call fcn.6c82ac40
jmp fcn.6c914580
Function at 0x6c9162f0
Capabilities:
Hash data using sha224
Hash data using sha256

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6c916504
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xcc]
cmp ecx, 6
jne 0x6c916387
mov dword [eax], 0xc1059ed8
mov dword [eax + 4], 0xcbbb9d5d
mov dword [eax + 8], 0x367cd507
mov dword [eax + 0xc], 0x629a292a
mov dword [eax + 0x10], 0x3070dd17
mov dword [eax + 0x14], 0x9159015a
mov dword [eax + 0x18], 0xf70e5939
mov dword [eax + 0x1c], 0x152fecd8
mov dword [eax + 0x20], 0xffc00b31
mov dword [eax + 0x24], 0x67332667
mov dword [eax + 0x28], 0x68581511
mov dword [eax + 0x2c], 0x8eb44a87
mov dword [eax + 0x30], 0x64f98fa7
mov dword [eax + 0x34], 0xdb0c2e0d
mov dword [eax + 0x38], 0xbefa4fa4
mov dword [eax + 0x3c], 0x47b5481d
jmp 0x6c9164e5
cmp ecx, 0xe
jne 0x6c916400
mov dword [eax], 0x19544da2
mov dword [eax + 4], 0x8c3d37c8
mov dword [eax + 8], 0x89dcd4d6
mov dword [eax + 0xc], 0x73e19966
mov dword [eax + 0x10], 0x32ff9c82
mov dword [eax + 0x14], 0x1dfab7ae
mov dword [eax + 0x18], 0x582f9fcf
mov dword [eax + 0x1c], 0x679dd514
mov dword [eax + 0x20], 0x7bd44da8
mov dword [eax + 0x24], 0xf6d2b69
mov dword [eax + 0x28], 0x4c48942
mov dword [eax + 0x2c], 0x77e36f73
mov dword [eax + 0x30], 0x6a1d36c8
mov dword [eax + 0x34], 0x3f9d85a8
mov dword [eax + 0x38], 0x91d692a1
mov dword [eax + 0x3c], 0x1112e6ad
jmp 0x6c9164e5
cmp ecx, 0xf
jne 0x6c916476
mov dword [eax], 0xfc2bf72c
mov dword [eax + 4], 0x22312194
mov dword [eax + 8], 0xc84c64c2
mov dword [eax + 0xc], 0x9f555fa3
mov dword [eax + 0x10], 0x6f53b151
mov dword [eax + 0x14], 0x2393b86b
mov dword [eax + 0x18], 0x5940eabd
mov dword [eax + 0x1c], 0x96387719
mov dword [eax + 0x20], 0xa88effe3
mov dword [eax + 0x24], 0x96283ee2
mov dword [eax + 0x28], 0x53863992
mov dword [eax + 0x2c], 0xbe5e1e25
mov dword [eax + 0x30], 0x2c85b8aa
mov dword [eax + 0x34], 0x2b0199fc
mov dword [eax + 0x38], 0x81c52ca2
mov dword [eax + 0x3c], 0xeb72ddc
jmp 0x6c9164e5
mov dword [eax], 0xf3bcc908
mov dword [eax + 4], 0x6a09e667
mov dword [eax + 8], 0x84caa73b
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x10], 0xfe94f82b
mov dword [eax + 0x14], 0x3c6ef372
mov dword [eax + 0x18], 0x5f1d36f1
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x20], 0xade682d1
mov dword [eax + 0x24], 0x510e527f
mov dword [eax + 0x28], 0x2b3e6c1f
mov dword [eax + 0x2c], 0x9b05688c
mov dword [eax + 0x30], 0xfb41bd6b
mov dword [eax + 0x34], 0x1f83d9ab
mov dword [eax + 0x38], 0x137e2179
mov dword [eax + 0x3c], 0x5be0cd19
mov dword [eax + 0xc0], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
ret
call fcn.6c82ac40
jmp fcn.6c9162f0
Function at 0x6c918740
Capabilities:
Hash data using sha224
Hash data using sha256

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6c9187e6
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0x6c]
test cl, cl
je 0x6c918799
mov dword [eax], 0xc1059ed8
mov dword [eax + 4], 0x367cd507
mov dword [eax + 8], 0x3070dd17
mov dword [eax + 0xc], 0xf70e5939
mov dword [eax + 0x10], 0xffc00b31
mov dword [eax + 0x14], 0x68581511
mov dword [eax + 0x18], 0x64f98fa7
mov dword [eax + 0x1c], 0xbefa4fa4
jmp 0x6c9187d0
mov dword [eax], 0x6a09e667
mov dword [eax + 4], 0xbb67ae85
mov dword [eax + 8], 0x3c6ef372
mov dword [eax + 0xc], 0xa54ff53a
mov dword [eax + 0x10], 0x510e527f
mov dword [eax + 0x14], 0x9b05688c
mov dword [eax + 0x18], 0x1f83d9ab
mov dword [eax + 0x1c], 0x5be0cd19
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 0
mov dword [eax + 0x68], 0
ret
call fcn.6c82ac40
jmp fcn.6c918740
Function at 0x6c943ca0
Capabilities:
Write file on windows

Disassembly:
push ebx
sub esp, 0x18
mov dword [esp], 2
lea ebx, [esp + 0x24]
call fcn.6c944a50
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Mingw_w64_runtime_failure:_n
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call fcn.6c944a50
mov edx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
lea esi, [esi]

Function at 0x6c943d00
Capabilities:
Allocate or change rwx memory

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x30
mov esi, dword [0x6cb2ac64]
test esi, esi
jle 0x6c943e20
mov eax, dword [0x6cb2ac68]
xor ecx, ecx
add eax, 0xc
mov edx, dword [eax]
cmp ebx, edx
jb 0x6c943d34
mov edi, dword [eax + 4]
add edx, dword [edi + 8]
cmp ebx, edx
jb 0x6c943db7
add ecx, 1
add eax, 0x14
cmp ecx, esi
jne 0x6c943d20
mov dword [esp], ebx
call fcn.6c9444f0
mov edi, eax
test eax, eax
je 0x6c943e47
mov eax, dword [0x6cb2ac68]
lea ebx, [esi + esi*4]
shl ebx, 2
add eax, ebx
mov dword [eax + 0x10], edi
mov dword [eax], 0
call fcn.6c944630
mov edx, dword [0x6cb2ac68]
add eax, dword [edi + 0xc]
mov dword [edx + ebx + 0xc], eax
lea edx, [esp + 0x14]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
test eax, eax
je 0x6c943e27
mov eax, dword [esp + 0x28]
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x6c943db0
lea edx, [eax - 0x40]
and edx, 0xffffffbf
jne 0x6c943dc0
add dword [0x6cb2ac64], 1
add esp, 0x30
pop ebx
pop esi
pop edi
ret
cmp eax, 2
mov edx, 4
mov eax, 0x40
mov ecx, dword [esp + 0x20]
cmove eax, edx
mov edx, dword [esp + 0x14]
add ebx, dword [0x6cb2ac68]
mov dword [ebx + 8], ecx
mov dword [ebx + 4], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
jne 0x6c943db0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.__VirtualProtect_failed_with_code_0x_x
mov dword [esp + 4], eax
call fcn.6c943ca0
lea esi, [esi]
lea esi, [esi]
xor esi, esi
jmp 0x6c943d3e
mov eax, dword [0x6cb2ac68]
mov eax, dword [eax + ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov dword [esp + 4], eax
call fcn.6c943ca0
mov dword [esp + 4], ebx
mov dword [esp], str.Address__p_has_no_image_section
call fcn.6c943ca0
lea esi, [esi]
nop
Function at 0x6c944160
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov dword [esp], 0x6cb2ac74
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x6cb2ac6c]
sub esp, 4
test ebx, ebx
je 0x6c9441b5
mov ebp, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [esi]
mov eax, dword [ebx]
mov dword [esp], eax
call ebp
mov esi, eax
sub esp, 4
call edi
test esi, esi
je 0x6c9441ae
test eax, eax
jne 0x6c9441ae
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x6c944190
mov dword [esp], 0x6cb2ac74
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x6c9444f0
Capabilities:
Parse pe header

Disassembly:
xor eax, eax
cmp word [0x6c7c0000], 0x5a4d
jne 0x6c944515
mov ecx, dword [0x6c7c003c]
cmp dword [ecx + 0x6c7c0000], 0x4550
lea edx, [ecx + 0x6c7c0000]
je 0x6c944520
ret
cmp word [ecx + 0x6c7c0018], 0x10b
jne 0x6c944515
push esi
movzx eax, word [ecx + 0x6c7c0014]
push ebx
movzx esi, word [ecx + 0x6c7c0006]
mov ebx, dword [esp + 0xc]
lea eax, [edx + eax + 0x18]
sub ebx, 0x6c7c0000
test si, si
je 0x6c944568
xor ecx, ecx
mov edx, dword [eax + 0xc]
cmp ebx, edx
jb 0x6c94455e
add edx, dword [eax + 8]
cmp ebx, edx
jb 0x6c94456a
add ecx, 1
add eax, 0x28
cmp esi, ecx
jne 0x6c944550
xor eax, eax
pop ebx
pop esi
ret
Function at 0x401b93
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1008
call fcn.00404500
push edi
mov byte [ebp - 0x1000], 0
mov ecx, 0x3ff
xor eax, eax
lea edi, [ebp - 0xfff]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0
push 0x80
push 3
push 0
push 0
push closesocket
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov dword [ebp - 0x1004], eax
cmp dword [ebp - 0x1004], 0xffffffff
jne 0x401bec
xor eax, eax
jmp 0x401c8c
mov ecx, 1
test ecx, ecx
je 0x401c7a
mov dword [ebp - 0x1008], 0
push 0x1000
push 0
lea edx, [ebp - 0x1000]
push edx
call sub.MSVCRT.DLL_memset
add esp, 0xc
push 0
lea eax, [ebp - 0x1008]
push eax
push 0x1000
lea ecx, [ebp - 0x1000]
push ecx
mov edx, dword [ebp - 0x1004]
push edx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp dword [ebp - 0x1008], 0
jne 0x401c46
jmp 0x401c7a
mov eax, dword [ebp - 0x1008]
push eax
lea ecx, [ebp - 0x1000]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
add eax, dword [edx]
push eax
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
add edx, dword [ebp - 0x1008]
mov eax, dword [ebp + 0x10]
mov dword [eax], edx
jmp 0x401bec
mov ecx, dword [ebp - 0x1004]
push ecx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x403905
Capabilities:
Create raw socket
Create thread
Create udp socket
Get hostname
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
mov dword [ebp - 0x150], ecx
push 0
push 3
push 2
call dword [sym.imp.WS2_32.DLL_socket]
mov ecx, dword [ebp - 0x150]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x150]
cmp dword [edx + 0xc], 0xffffffff
jne 0x403940
call dword [sym.imp.WS2_32.DLL_WSAGetLastError]
jmp 0x403aef
push 0x100
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.WS2_32.DLL_gethostname]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jne 0x403966
call dword [sym.imp.WS2_32.DLL_WSAGetLastError]
jmp 0x403aef
lea ecx, [ebp - 0x14c]
push ecx
call dword [sym.imp.WS2_32.DLL_gethostbyname]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp + 8]
mov dword [edx + 0x10], eax
mov word [ebp - 0x40], 2
mov ecx, dword [ebp - 0x150]
mov dx, word [ecx + 0x10]
push edx
call dword [sym.imp.WS2_32.DLL_htons]
mov word [ebp - 0x3e], ax
mov eax, dword [ebp - 0x4c]
movsx ecx, word [eax + 0xa]
push ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x3c]
push edx
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
push 0x10
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x150]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WS2_32.DLL_bind]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jne 0x4039e4
call dword [sym.imp.WS2_32.DLL_WSAGetLastError]
jmp 0x403aef
mov dword [ebp - 0x44], 1
push 4
lea eax, [ebp - 0x44]
push eax
push 4
push 0xffff
mov ecx, dword [ebp - 0x150]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WS2_32.DLL_setsockopt]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x44], 1
push 4
lea eax, [ebp - 0x44]
push eax
push 2
push 0
mov ecx, dword [ebp - 0x150]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WS2_32.DLL_setsockopt]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jne 0x403a40
call dword [sym.imp.WS2_32.DLL_WSAGetLastError]
jmp 0x403aef
mov dword [ebp - 0x48], 1
mov dword [ebp - 4], 0
push 0
push 0
lea eax, [ebp - 4]
push eax
push 0x28
lea ecx, [ebp - 0x2c]
push ecx
push 4
lea edx, [ebp - 0x48]
push edx
push 0x98000001
mov eax, dword [ebp - 0x150]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.WS2_32.DLL_WSAIoctl]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jne 0x403a88
call dword [sym.imp.WS2_32.DLL_WSAGetLastError]
jmp 0x403aef
mov edx, dword [ebp - 0x150]
mov byte [edx + 8], 1
push 0
push 0
mov eax, dword [ebp - 0x150]
push eax
push 0x403862
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov ecx, dword [ebp - 0x150]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x150]
cmp dword [edx + 4], 0
jne 0x403aed
mov eax, dword [ebp - 0x150]
mov byte [eax + 8], 0
mov ecx, dword [ebp - 0x150]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WS2_32.DLL_closesocket]
mov eax, dword [ebp - 0x150]
mov dword [eax + 0xc], 0xffffffff
or eax, 0xffffffff
jmp 0x403aef
xor eax, eax
mov esp, ebp
pop ebp
ret 8
Function at 0x403af5
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov byte [eax + 8], 0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
je 0x403b32
push 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x403b48
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.WS2_32.DLL_closesocket]
mov esp, ebp
pop ebp
ret

Function at 0x4233cf
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
mov ebp, esp
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
cld
mov dl, 0x80
movsb byte es:[edi], byte [esi]
call fcn.0042344e
jae 0x4233db
xor ecx, ecx
call fcn.0042344e
jae 0x423405
xor eax, eax
call fcn.0042344e
jae 0x423416
mov al, 0x10
call fcn.0042344e
adc al, al
jae 0x4233f7
jne 0x423443
stosb byte es:[edi], al
jmp 0x4233dc
call fcn.0042345a
dec ecx
loop 0x423422
mov eax, ebp
call fcn.00423458
jmp 0x423444
lodsb al, byte [esi]
shr eax, 1
je 0x42346a
adc ecx, 2
mov ebp, eax
jmp 0x423444
xchg ecx, eax
dec eax
shl eax, 8
lodsb al, byte [esi]
mov ebp, eax
call fcn.00423458
cmp eax, 0x7d00
jae 0x423442
cmp eax, 0x500
jae 0x423443
cmp eax, 0x7f
ja 0x423444
inc ecx
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x4233dc
pop ebp
ret 8