joyce8/EMBER2024-capa huggingface dataset:
Function at 0x415c90
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov eax, dword [ebp + 0xc]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x415cb0
sar esi, 1
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push esi
push eax
push 0
call dword [0x447698]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x415cdf
mov eax, 0xffffffff
jmp 0x415ce2
lea eax, [ebx + ebx]
push eax
call fcn.00408a50
add esp, 4
push edi
push ebx
mov dword [esp + 0x68], eax
push eax
push esi
push dword [ebp + 0xc]
push 0
call dword [0x447698]
mov dword [esp + 0x18], 0x3fe0de0
mov dword [esp + 0x1c], 0x79101e1
mov dword [esp + 0x20], 0x3b1a0590
mov dword [esp + 0x24], 0x3fdb39d2
mov dword [esp + 0x28], 0x33a53daa
mov dword [esp + 0x2c], 0x37a531a9
mov dword [esp + 0x30], 0x2b2a35a6
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
mov byte [esp + 0x38], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x20
ja 0x415db4
nop
nop
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx - 0x29cecb2a]
add ecx, 0xd6
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xac], esi
mov ecx, dword [esp + 0xac]
add cl, 0x26
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x21
jb 0x415d60
lea edi, [esp + 0x90]
lea edx, [esp + 0x18]
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xac]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 0xd
jns 0x415dea
mov eax, 0xffffffff
jmp 0x415def
add eax, eax
add eax, 0x1a
mov edi, dword [esp + 0x60]
push eax
call fcn.00408a50
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x415e21
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415e10
mov word [eax], 0
movzx ecx, word [esp + 0x90]
test cx, cx
je 0x415e51
lea edx, [esp + 0x92]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415e40
mov word [eax], 0
lea eax, [esp + 0x48]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043b3d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441e74]
Function at 0x4188b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov edi, dword [ebp + 0xc]
mov ebx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x4188d0
sar ebx, 1
lea eax, [esp + 8]
push eax
push 0
push 0
push ebx
push edi
push 0
call dword [0x447698]
mov esi, dword [esp + 8]
test esi, esi
jns 0x4188ff
mov eax, 0xffffffff
jmp 0x418902
lea eax, [esi + esi]
push eax
call fcn.00408a50
add esp, 4
lea ecx, [esp + 8]
push ecx
push esi
mov esi, eax
push eax
push ebx
push edi
push 0
call dword [0x447698]
lea edi, [esp + 0x20]
push edi
push esi
call fcn.0043b590
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442178]
Function at 0x41aac0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov dword [esp + 8], 0x1bb119bc
mov dword [esp + 0xc], 0xe75fe549
mov dword [esp + 0x10], 0xe314e11c
mov dword [esp + 0x14], 0xef4ced40
lea eax, [esp + 0x18]
mov word [esp + 0x18], 0xe9e8
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1d], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x18
ja 0x41ab61
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + 0xfc]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xb3d319fc
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 0x1c
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x19
jb 0x41ab20
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x28]
lea esi, [esp + 8]
mov edx, esi
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x38]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, 0xfffffffe
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41ab90
mov eax, ecx
sar eax, 1
and ecx, 0x12
xor eax, 9
mov edi, esi
add eax, ecx
jns 0x41abb2
mov eax, 0xffffffff
jmp 0x41abb4
add eax, eax
push eax
call fcn.00408a50
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x41abe1
add ebx, 2
mov eax, esi
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41abd0
mov word [eax], 0
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x41ac11
lea edx, [esp + 0x2a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41ac00
mov word [eax], 0
push edi
push esi
call fcn.0043b590
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442248]
Function at 0x42e170
Capabilities:
Encode data using xor
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov esi, esp
call fcn.0040ed60
push eax
mov dword [esi + 8], esp
push eax
mov ebx, esp
push eax
mov eax, esp
sub esp, 0x18
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x18], esp
jmp 0x42e19d
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], eax
mov byte [esi + 3], 0
xor eax, eax
sub esp, 4
mov dword [esp], 0
call dword [sym.imp.USER32.dll_OpenClipboard]
cmp eax, 0
setne al
test al, 1
jne 0x42e1cb
jmp 0x42e33a
xor eax, eax
sub esp, 8
mov dword [esp], 0
mov dword [esp + 4], 0
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esi + 0x2c], eax
sub esp, 4
mov dword [esp], 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
cmp dword [ecx], 0
setne al
test al, 1
jne 0x42e20c
jmp 0x42e332
mov eax, dword [esi + 8]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebx], eax
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.0040c290
add esp, 4
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, ecx
cmp dword [eax], 0
je 0x42e31f
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x10], ecx
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov ebx, dword [ebx]
call fcn.0040ed60
mov eax, dword [esi + 0x18]
mov al, byte [eax]
mov byte [esi + 0xc], al
mov byte [edi], 0x23
mov byte [edi + 1], 5
mov byte [edi + 2], 3
mov byte [edi + 3], 0xb
mov byte [edi + 4], 0x18
mov byte [edi + 5], 0xc
mov byte [edi + 6], 0x1f
mov byte [edi + 7], 0xd
mov byte [edi + 8], 0x1a
mov byte [edi + 9], 0x4f
mov byte [edi + 0xa], 4
mov byte [edi + 0xb], 0xfb
mov byte [edi + 0xc], 6
mov byte [edi + 0xd], 0x75
mov byte [edi + 0x16], 0
mov dword [edi + 0x12], 0
mov dword [edi + 0xe], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x17
jae 0x42e2f7
mov dword [esi + 0x14], ebx
jmp 0x42e2b6
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov ebx, eax
add ebx, 0x1bdf146f
mov edx, ebx
xor edx, ecx
add eax, 0x6f
xor eax, ebx
and eax, ecx
sub edx, eax
mov dword [esi + 0x28], edx
mov eax, dword [esi + 0x28]
add al, 0xf7
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x17
jb 0x42e2b6
mov ebx, dword [esi + 0x14]
jmp 0x42e2f7
sub esp, 0xc
mov ecx, dword [esi + 0x10]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x1c]
mov dword [esp + 8], eax
call fcn.004095a0
jmp 0x42e312
and al, 1
mov byte [esi + 3], al
jmp 0x42e319
jmp 0x42e31b
jmp 0x42e31d
jmp 0x42e31f
mov eax, dword [esi + 8]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x42e332
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x42e33a
mov al, byte [esi + 3]
jmp 0x42e33f
jmp 0x42e341
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x438ea0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x278
push dword [0x44f6b4]
call fcn.00439b30
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x4457b4]

Function at 0x439b30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov dword [esp + 0x28], 0x2b247b75
mov dword [esp + 0x2c], 0
mov byte [esp + 0x30], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 8
ja 0x439bce
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0x28]
lea ecx, [edx + esi]
add ecx, 0x1fa9d85
mov edi, 0xfe05627a
sub edi, edx
lea ebx, [edx + 0x85]
and ebx, esi
or edi, esi
add edi, edx
lea edx, [ebx + edi]
add edx, 0x1fa9d86
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
add cl, 0x5d
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 9
jb 0x439b70
xor ecx, ecx
cmp dword [esp + 0x28], eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x4458c4]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x28], 0x83805e56
mov dword [esp + 0x2c], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 7
ja 0x439c5f
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx edi, byte [esp + esi + 0x28]
lea esi, [edx + 0x63a5cc6b]
mov ebx, esi
and ebx, edi
xor esi, edi
lea esi, [esi + ebx*2]
add edx, 0x6b
and edx, edi
add edx, ebx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
add dl, 0x13
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 8
jb 0x439c10
xor edx, edx
cmp ecx, dword [esp + 0x28]
setne dl
xor ebx, ebx
jmp dword [edx*4 + 0x4458cc]
xor ecx, ecx
mov edx, dword [ebp + 8]
cmp dword [edx + eax + 0x7c], 0
sete cl
xor ebx, ebx
jmp dword [ecx*4 + 0x4458d4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax + 0x78]
xor eax, eax
test ecx, ecx
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x4458dc]
jmp dword [0x4458ec]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x43a6a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov ecx, dword [ebp + 8]
mov dword [esp + 8], 0xb3b2b160
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x43a71f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
add eax, 0x2c043568
mov esi, eax
and esi, edx
mov edi, eax
xor edi, edx
or eax, edx
xor eax, edi
lea edx, [edi + esi*2]
add eax, esi
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x28
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x43a6e0
mov eax, dword [esp + 8]
mov eax, dword fs:[eax]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x446144]
mov edx, dword [case.0x43a72d.0]
mov ecx, dword [eax + 8]
nop
nop
nop
jmp edx
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edi, dword [case.0x43a72d.9]
xor eax, eax
mov esi, edx
jmp edi
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44616c]
xor ebx, ebx
cmp dword [esi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x446174]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
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
mov ecx, 0x968291b
nop
nop
nop
nop
nop
test eax, eax
nop
je 0x43304e
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x4304d8
mov ecx, 0x3bae2d33
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x43306c
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43300c
nop
nop
pop eax
nop
nop
nop
nop
add eax, 0x40a063
sub eax, 0x40a009
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x433030
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
jne 0x43301e
nop
nop
popal
nop
nop
nop
nop
jmp 0x431219

Function at 0x44b810
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
mov dword [esi], 0
mov eax, dword [0x65bd8c]
push eax
call sub.IMM32.dll_ImmGetContext
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
mov dword [0x65bd8c], eax
call edi
test ax, ax
push 0x10
setne bl
call edi
test ax, ax
jge 0x44b84c
or dword [esi], 0x2000000
push 0x11
call edi
test ax, ax
jge 0x44b85b
or dword [esi], 0x4000000
push 0
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
test bl, bl
je 0x44b86d
or dword [esi], 0x657270
mov eax, esi
pop edi
pop esi
pop ebx
ret

Function at 0x56bb3b
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov eax, 0x2c4fea89
fnstsw word [esi + 0x33506102]
xchg esi, eax
cmc
test bh, ah
imul ecx, dword [edx], 0x9efd583b
add ah, byte [ecx + 0x50]
xor edx, dword [esi + 0x69e784f5]
or bh, byte [ebx]
pop eax
std
sahf
outsd dx, dword [esi]
or al, 0xb0
shl edx, cl
and dword [edi + eax*2], 0xf5965536
les esp, [edi - 0xc6f9efe]
dec edi
sub al, 0x1d
jle 0x56bb42
mov eax, 0x4724aac9
jbe 0x56bb83
mov al, 0xd3
and al, byte [ecx - 3]
sahf
scasd eax, dword es:[edi]
int3
cmp byte [ecx], cl
push 0xffffffffffffffcf
lodsb al, byte [esi]
fnstsw word [esi + 0x1625330]
movsb byte es:[edi], byte [esi]
invalid
Function at 0x4296fc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 2
push edi
mov edi, dword [ebp + 0x14]
test eax, eax
je 0x42977c
push esi
xor esi, esi
cmp dword [ebp + 0x18], esi
jbe 0x42977b
push ebx
mov ebx, 0x482bc8
mov al, byte [edi + esi]
xor al, 0x73
sub al, 0x6c
xor al, 0x74
push str.Own_head
push ebx
mov byte [edi + esi], al
call fcn.0040146b
push eax
call fcn.00402703
mov al, byte [edi + esi]
add al, 0x4e
xor al, 0xdc
push str.Earth
push ebx
mov byte [edi + esi], al
call fcn.0040146b
push eax
call fcn.00402703
mov al, byte [edi + esi]
xor al, 0xac
sub al, 0x65
xor al, 0x22
sub al, 0x73
push 0x42a5b8
mov byte [edi + esi], al
call fcn.00410a6e
xor byte [edi + esi], al
add esp, 0x1c
inc esi
cmp esi, dword [ebp + 0x18]
jb 0x42971e
pop ebx
pop esi
lea ecx, [ebp + 8]
call fcn.00405663
pop edi
pop ebp
ret 0x14
Function at 0x420562
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00420204

Function at 0x42056d
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00420393

Function at 0x420967
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x101c
call fcn.0040d9f0
mov eax, dword [0x482e00]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
push dword [ebp + 8]
mov dword [ebp - 0x100c], eax
call fcn.0041e133
pop ecx
mov ecx, dword [ebp + 8]
mov ebx, eax
cmp dword [ecx + 8], 0
jne 0x4209a9
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
jmp 0x420b05
mov eax, dword [ecx]
sub eax, dword [ecx + 4]
push esi
push edi
push 0
cdq
push 2
push edx
push eax
call fcn.00429400
push dword [ebp - 0x100c]
mov ecx, ebx
mov dword [ebp - 0x1008], eax
mov esi, ebx
mov dword [ebp - 0x1018], edx
and ecx, 0x3f
sar esi, 6
imul edi, ecx, 0x38
push 0
mov eax, dword [esi*4 + 0x485850]
push dword [edi + eax + 0x24]
push dword [edi + eax + 0x20]
push ebx
call fcn.00421706
mov ecx, dword [esi*4 + 0x485850]
add esp, 0x14
mov dword [ebp - 0x1010], eax
mov eax, edx
mov edx, dword [ebp - 0x1010]
mov dword [ebp - 0x101c], eax
cmp edx, dword [edi + ecx + 0x20]
jne 0x420afe
cmp eax, dword [edi + ecx + 0x24]
jne 0x420afe
push 0
lea eax, [ebp - 0x1014]
push eax
push 0x1000
lea eax, [ebp - 0x1004]
push eax
push dword [edi + ecx + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420afe
push dword [ebp - 0x100c]
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.00421706
add esp, 0x14
test edx, edx
jl 0x420afe
jg 0x420a74
test eax, eax
jb 0x420afe
mov ebx, dword [ebp - 0x1018]
mov eax, dword [ebp - 0x1014]
test ebx, ebx
jg 0x420afe
jl 0x420a8e
cmp dword [ebp - 0x1008], eax
ja 0x420afe
lea edi, [ebp - 0x1004]
xor edx, edx
add edi, eax
lea ecx, [ebp - 0x1004]
xor esi, esi
cmp dword [ebp - 0x1008], edx
jne 0x420aac
test ebx, ebx
je 0x420ae5
cmp ecx, edi
jae 0x420ae5
mov al, byte [ecx]
cmp al, 0xd
jne 0x420ac6
lea eax, [edi - 1]
cmp ecx, eax
jae 0x420ad2
cmp byte [ecx + 1], 0xa
jne 0x420ad2
inc ecx
jmp 0x420ad2
movzx eax, al
movsx eax, byte [eax + 0x4830c8]
add ecx, eax
add esi, 1
adc edx, 0
inc ecx
cmp esi, dword [ebp - 0x1008]
jne 0x420aac
cmp edx, ebx
jne 0x420aac
lea eax, [ebp - 0x1004]
sub ecx, eax
mov eax, ecx
cdq
add eax, dword [ebp - 0x1010]
adc edx, dword [ebp - 0x101c]
jmp 0x420b03
or edx, 0xffffffff
mov eax, edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0040cde2
leave
ret
Function at 0x420ba4
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
sar ecx, 6
push esi
push edi
imul edi, eax, 0x38
mov eax, dword [ecx*4 + 0x485850]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + edi + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x420be4
cmp byte [ebx], 0xa
jne 0x420be4
or byte [eax + edi + 0x28], 4
jmp 0x420be9
and byte [eax + edi + 0x28], 0xfb
add ecx, ebx
mov edx, ebx
mov dword [ebp - 0xc], ecx
mov esi, ebx
cmp ebx, ecx
jae 0x420ce7
mov al, byte [edx]
cmp al, 0x1a
je 0x420cc9
lea ecx, [edx + 1]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
cmp al, 0xd
je 0x420c18
mov edx, dword [ebp - 8]
mov byte [esi], al
jmp 0x420c3d
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x420c47
mov cl, byte [eax]
xor eax, eax
cmp cl, 0xa
sete al
inc eax
add edx, eax
cmp cl, 0xa
sete al
dec al
and al, 3
add al, 0xa
mov byte [esi], al
mov ecx, dword [ebp - 0xc]
inc esi
cmp edx, ecx
jb 0x420bfa
jmp 0x420ce7
push 0
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420cc4
cmp dword [ebp - 0xc], 0
je 0x420cc4
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx*4 + 0x485850]
test byte [eax + edi + 0x28], 0x48
je 0x420c9e
mov dl, byte [ebp - 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], eax
cmp dl, 0xa
jne 0x420c89
mov byte [esi], dl
jmp 0x420c9a
mov byte [esi], 0xd
mov eax, dword [ecx*4 + 0x485850]
mov byte [eax + edi + 0x2a], dl
mov eax, dword [ebp - 0x14]
mov esi, eax
jmp 0x420ce7
cmp byte [ebp - 1], 0xa
jne 0x420cad
cmp esi, ebx
jne 0x420cad
mov byte [esi], 0xa
jmp 0x420ce6
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.00421724
add esp, 0x10
cmp byte [ebp - 1], 0xa
je 0x420ce7
mov byte [esi], 0xd
jmp 0x420ce6
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx*4 + 0x485850]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x420ce3
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x420ce7
mov byte [esi], 0x1a
inc esi
sub esi, ebx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x420cf0
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, eax
and eax, 0x3f
sar ebx, 6
push edi
imul edi, eax, 0x38
push 0xa
mov eax, dword [ebx*4 + 0x485850]
pop edx
mov dword [ebp - 0x14], edx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x420d33
cmp word [esi], dx
jne 0x420d33
or byte [edi + eax + 0x28], 4
jmp 0x420d38
and byte [edi + eax + 0x28], 0xfb
lea edx, [esi + ecx*2]
mov eax, esi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp eax, edx
jae 0x420e8b
mov dword [ebp - 0xc], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x10], edx
push 0x1a
pop edx
cmp cx, dx
mov edx, dword [ebp - 8]
je 0x420e6b
add eax, 2
cmp cx, word [ebp - 0xc]
je 0x420d7a
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0x420db0
cmp eax, edx
jae 0x420dbc
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x14]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 8]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
add esi, 2
cmp eax, edx
jb 0x420d52
jmp 0x420e8b
push 0
lea eax, [ebp - 0x14]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420e67
cmp dword [ebp - 0x14], 0
je 0x420e67
mov eax, dword [ebx*4 + 0x485850]
push 0xa
test byte [edi + eax + 0x28], 0x48
je 0x420e3f
mov dx, word [ebp - 4]
lea eax, [esi + 2]
pop ecx
mov dword [ebp - 0x18], eax
cmp dx, cx
jne 0x420e08
mov word [esi], cx
jmp 0x420e3b
push 0xd
pop eax
mov word [esi], ax
mov eax, dword [ebx*4 + 0x485850]
movzx ecx, dx
shr ecx, 8
push 0xa
mov byte [edi + eax + 0x2a], dl
mov eax, dword [ebx*4 + 0x485850]
mov byte [edi + eax + 0x2b], cl
mov eax, dword [ebx*4 + 0x485850]
pop ecx
mov byte [edi + eax + 0x2c], cl
mov eax, dword [ebp - 0x18]
mov esi, eax
jmp 0x420e8b
pop ebx
cmp word [ebp - 4], bx
jne 0x420e50
cmp esi, dword [ebp + 0xc]
jne 0x420e50
mov word [esi], bx
jmp 0x420e88
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.00421724
add esp, 0x10
cmp word [ebp - 4], bx
je 0x420e8b
push 0xd
jmp 0x420e84
mov ecx, dword [ebx*4 + 0x485850]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x420e82
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x420e8b
push 0x1a
pop eax
mov word [esi], ax
add esi, 2
sub esi, dword [ebp + 0xc]
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret