joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40580d
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
lea eax, [ebp - 0x10]
push eax
push 0x456268
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp + 8]
mov dword [0x456268], 0x44
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x405848
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10]
leave
ret 4

Function at 0x4059fe
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x405a1b
and eax, 0xfffffffe
push eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
ret 4

Function at 0x405a1e
Capabilities:
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [eax + 1]
push 0
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [esp + 0x14]
push 0
push 1
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
ret 0xc

Function at 0x405a4d
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x64
pop edi
mov eax, dword [0x4088f4]
mov dword [ebp - 8], eax
mov eax, dword [0x4088f8]
dec edi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1a
pop ecx
xor edx, edx
div ecx
push esi
push 0
lea eax, [ebp - 8]
push eax
push dword [ebp + 0xc]
add word [ebp - 4], dx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x405a9d
test edi, edi
jne 0x405a5a
mov word [esi], ax
pop edi
pop esi
leave
ret 8
mov eax, esi
jmp 0x405a97
Function at 0x40615e
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push esi
push edi
push dword [esp + 0xc]
mov esi, 0x4562b0
push esi
call fcn.00405bd7
push esi
call fcn.00405927
mov edi, eax
test edi, edi
jne 0x40617f
xor eax, eax
jmp 0x4061dc
push edi
call fcn.00405c06
test byte [0x470608], 0x80
je 0x40619b
movzx eax, word [edi]
test ax, ax
je 0x40617b
cmp eax, 0x5c
je 0x40617b
sub edi, esi
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
sar edi, 1
jmp 0x4061bd
push esi
call fcn.00405cb5
test eax, eax
je 0x4061b7
test byte [eax], 0x10
je 0x4061e1
push esi
call fcn.00406131
push esi
call ebx
cmp eax, edi
jg 0x4061a8
push esi
call fcn.00406102
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, ecx
pop ebx
pop edi
pop esi
ret 4
xor eax, eax
jmp 0x4061db
Function at 0x406479
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push 0x4089dc
mov ebx, 0x45a2b8
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, dword [esp + 0x1c]
xor ebp, ebp
mov esi, 0x400
cmp edi, ebp
je 0x4064c7
push 1
push ebp
push edi
call fcn.00405a1e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
cmp eax, ebp
je 0x406642
cmp eax, esi
jg 0x406642
push esi
mov edi, 0x45f910
push edi
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
cmp eax, ebp
je 0x406642
cmp eax, esi
jg 0x406642
push ebp
push ebp
push esi
push 0x45aab8
push 0xffffffffffffffff
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebp
push ebp
call ebx
test eax, eax
je 0x406642
push ebp
push ebp
push esi
mov esi, 0x45b108
push esi
push 0xffffffffffffffff
push edi
push ebp
push ebp
call ebx
test eax, eax
je 0x406642
push esi
push 0x45aab8
push str._s_s_r_n
push 0x45b508
call dword [0x40821c]
add esp, 0x10
mov ebx, eax
mov eax, dword [0x4705bc]
push dword [eax + 0x128]
push edi
call fcn.004061e5
push 4
push 0xc0000000
push edi
call fcn.00405a1e
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
je 0x406642
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea eax, [edi + ebx + 0xa]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
cmp esi, ebp
je 0x406638
push ebp
lea eax, [esp + 0x14]
push eax
push edi
push esi
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x406638
cmp edi, dword [esp + 0x10]
jne 0x406638
push str._Rename__r_n
push esi
call fcn.00405984
cmp eax, ebp
jne 0x4065cb
push str._Rename__r_n
lea eax, [esi + edi]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
add edi, 0xa
jmp 0x406600
push 0x4089d0
add eax, 0xa
push eax
call fcn.00405984
mov ebp, eax
test ebp, ebp
je 0x4065fe
lea ecx, [esi + edi]
lea eax, [ecx + ebx]
cmp ecx, ebp
jbe 0x4065f5
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
dec ecx
cmp ecx, ebp
ja 0x4065eb
sub ebp, esi
lea eax, [ebp + 1]
xor ebp, ebp
jmp 0x406602
xor ebp, ebp
mov eax, edi
push ebx
push 0x45b508
add eax, esi
push eax
call fcn.004059da
push ebp
push ebp
push ebp
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebp
lea eax, [esp + 0x14]
push eax
add edi, ebx
push edi
push esi
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x40667b
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push ebx
mov ebx, dword [ebp + 8]
push ebx
call fcn.0040615e
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
test cl, 8
je 0x4066b0
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
inc eax
add dword [0x470668], eax
jmp 0x406855
mov dword [ebp + 8], ecx
and dword [ebp + 8], 1
push esi
je 0x4066cb
test eax, eax
je 0x406800
test cl, 2
je 0x406800
push edi
push ebx
mov esi, 0x45b908
push esi
call fcn.00405bd7
cmp dword [ebp + 8], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
je 0x4066ee
push str..
push esi
call edi
jmp 0x4066f4
push ebx
call fcn.00406131
cmp word [ebx], 0
jne 0x406704
cmp word [0x45b908], 0x5c
jne 0x40670c
push 0x4082d0
push ebx
call edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebx + eax*2]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x25c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x4067ef
lea esi, [ebp - 0x230]
push 0x3f
mov eax, esi
push eax
call fcn.004058d4
xor edi, edi
cmp word [eax], di
je 0x406753
cmp word [ebp - 0x28], di
je 0x406753
lea esi, [ebp - 0x28]
cmp word [esi], 0x2e
jne 0x40676d
movzx eax, word [esi + 2]
cmp ax, di
je 0x4067cc
cmp eax, 0x2e
jne 0x40676d
cmp word [esi + 4], di
je 0x4067cc
push esi
push dword [ebp - 4]
call fcn.00405bd7
test byte [ebp - 0x25c], 0x10
je 0x406794
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x4067cc
push dword [ebp + 0xc]
push ebx
call fcn.0040667b
jmp 0x4067cc
push ebx
call fcn.004059fe
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4067c4
test byte [ebp + 0xc], 4
je 0x4067bc
push ebx
push 0xfffffffffffffff1
call fcn.00404b91
push edi
push ebx
call fcn.00406648
jmp 0x4067cc
inc dword [0x470668]
jmp 0x4067cc
push ebx
push 0xfffffffffffffff2
call fcn.00404b91
lea eax, [ebp - 0x25c]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x406733
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x4067f1
xor edi, edi
cmp dword [ebp + 8], edi
pop edi
je 0x406800
mov ecx, dword [ebp - 4]
xor eax, eax
mov word [ecx - 2], ax
xor esi, esi
cmp dword [ebp + 8], esi
je 0x406854
cmp dword [ebp - 0xc], esi
je 0x406844
push ebx
call fcn.00405cb5
test eax, eax
je 0x406854
push ebx
call fcn.00406102
push ebx
call fcn.004059fe
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x40684c
test byte [ebp + 0xc], 4
je 0x406844
push ebx
push 0xfffffffffffffff1
call fcn.00404b91
push esi
push ebx
call fcn.00406648
jmp 0x406854
inc dword [0x470668]
jmp 0x406854
push ebx
push 0xffffffffffffffe5
call fcn.00404b91
pop esi
pop ebx
leave
ret 8
Function at 0x406b48
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x460114], 0
jne 0x406b86
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 0x406b5c
mov dword [ecx*4 + 0x460110], eax
inc ecx
cmp ecx, 0x100
jl 0x406b57
pop esi
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp + 8]
not eax
jbe 0x406bb3
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 + 0x460110]
inc ecx
cmp dword [ebp + 0x10], 0
ja 0x406b94
not eax
pop ebp
ret 0xc
Function at 0x493c7a
Capabilities:
Execute anti-debugging instructions

Disassembly:
jmp 0x493ce7
pop dword [esp + 0xa]
lea esp, [esp + 0x14]
push dword [esp + 5]
mov dword [esp + 4], esi
lea esp, [esp + 1]
mov dword [esp + 0x98], ebp
call fcn.00493c7c
pushfd
cpuid
btc eax, ebx
jmp 0x493d6a
bsr bp, bp
bsr dx, bp
mov edi, dword [esp + 0x28]
mov bl, byte [esp]
not bp
mov al, 0x4e
cpuid
jmp 0x493dca
jo 0x493d13
bsr bp, bp
bsr dx, bp
call fcn.00493d4f
cli
mov ebp, ecx
rdtsc
sub esp, 0x12
mov ebp, 0x587d0b3c
rcr bh, 3
lea esp, [esp + 2]
jmp 0x493dfe
lea ebp, [esp]
or ecx, eax
je 0x493e16
xchg dh, al
cpuid
neg ecx
jmp 0x493e22
push dword [esp + 0x2c]
ret 0x30
xchg dword [esp + 0x2c], ecx
bswap ebp
lea eax, [edx*4]
mov ax, bx
mov esi, dword [esp]
mov ebp, dword [esp]
jmp 0x493de6
xchg dh, al
jmp 0x493e1e
cpuid
neg ecx
sub esp, 0xc0
jmp 0x493ec7
btr ebx, edx
cmc
xchg ah, bl
jmp fcn.00493be3
lea ecx, [esi + 0x95]
xchg dh, al
mov ecx, edi
bsr dx, cx
jmp 0x493ea1
mov bl, bh
jmp 0x493e5b
xchg ah, bl
jmp fcn.00493be3
jae 0x493e45
btr ebx, edx
cmc
jmp 0x493e78
mov esi, esp
cmc
jp 0x493e74
mov bl, bh
lea ecx, [esi + 0x95]
xchg dh, al
jmp 0x493e63

Function at 0x493cba
Capabilities:
Execute anti-debugging instructions

Disassembly:
pop word [esp]
push esp
push edx
mov byte [esp + 3], dh
push word [esp + 3]
jmp 0x493d31
mov dword [esp + 0xa0], edi
lea esp, [esp + 0xa0]
jmp 0x493d07

Function at 0x4948b8
Capabilities:
Execute anti-debugging instructions

Disassembly:
lea ebx, [edx*4]
bswap eax
lea esp, [esp + 4]
not dl
mov eax, dword [esp]
mov al, ah
jmp 0x4948c3
mov eax, 0xcb3ffbfa
btc eax, ebx
jle 0x49487a
lea ebx, [edx*4]
jmp 0x4948bf
xchg bh, al
lea eax, [ebx + edi]
jmp 0x49489a
bswap eax
jmp 0x494883
xchg al, ah
rcl bx, cl
jmp 0x494e33
and edx, 0x3c
ror ah, 1
jns 0x494d3b
js 0x494d24
retf 0xc959
sub esp, 2
xchg word [esp], ax
xchg word [esp], bx
lea esp, [esp + 2]
jmp 0x494d90
sub ebp, 4
inc al
jb 0x494ceb
sub esp, 2
jmp 0x494e0f
inc ax
not eax
neg al
jmp 0x494d41
inc ax
not eax
neg al
jmp 0x494d04
mov dword [ebp], ebx
bswap ebx
rdtsc
mov bl, bh
setae ah
jmp fcn.00494d43
mov ebx, dword [edx + esi]
mov dx, 0x2e53
mov al, 0xae
bswap eax
mov dh, 0x60
jmp 0x494d5f
xchg word [esp], ax
xchg word [esp], bx
lea esp, [esp + 2]
jmp 0x494d90
jno 0x4948ce
jo 0x4948ce
lea edi, [edi - 0x39]
mov al, byte [esp]
mov al, 0xe
not eax
mov eax, 0x1bd875c0
sub ax, 0x6284
jmp 0x494e88
xchg dword [esp], edi
lea eax, [ebp + 0x87]
bswap eax
sub esp, 0x1e
mov dword [esp + 7], eax
add al, ch
jmp 0x494f1f
lea esp, [esp + 2]
push dword [esp + 0x1c]
ret 0x20
Function at 0x4b3b53
Capabilities:
Encrypt data using aes

Disassembly:
lea esp, [esp + 4]
movzx esi, byte [eax + 3]
shl edx, 8
call fcn.004b3a43
mov si, word [esp]
jmp 0x4b3ae5
pushal
xor edx, esi
shr ebx, 0x1f
mov di, 0x2e73
bsr bx, bp
jmp 0x4b3b10
movzx esi, byte [eax + 7]
cmp bx, 0xf54a
shl edx, 8
sub esp, 0x1c
jmp 0x4b3acc
setnp bl
jmp 0x4b3a80
lea esp, [esp + 0x3c]
movzx esi, byte [eax + 9]
bswap edi
xor edi, esi
jmp 0x4b3ba3
shl edx, 8
call 0x4b3b53
pushal
xor edx, esi
bsr si, cx
mov esi, ebp
jmp 0x4b3b79
xor edx, esi
movzx esi, byte [eax + 0xa]
lea ebp, [ebp*4]
pushal
jmp 0x4b3b4a
lea esp, [esp + 0x24]
movzx esi, byte [eax + 0xb]
lea ebx, reloc.KERNEL32.dll_GetProcAddress
shl edx, 8
jmp 0x4b3bb2
xchg bh, bl
btr edi, edx
mov bp, 0x145d
jmp 0x4b42ac
mov dword [ecx + 4], edx
movzx edx, byte [eax + 8]
shl edx, 8
sets bl
jmp 0x4b3b69
stc
neg edi
lea edi, [esp + edx]
mov bl, 0x48
xor edx, esi
jmp 0x4b3b8c
lea edi, [ebp + 0xd7]
stc
movzx eax, byte [eax + 0xf]
xchg bx, di
lea ebp, [ecx + 0xc3]
jmp 0x4b3c1f
shl edx, 8
xor edx, esi
xchg bl, bh
movzx esi, byte [eax + 0xe]
jmp 0x4b3bbe
xor edx, eax
inc bp
setle al
not esi
jmp 0x4b3df6
xor edx, esi
shl edx, 8
lea esi, [edx*4]
jmp 0x4b3be9
shl edx, 8
bt edi, edx
clc
jmp 0x4b3c06
rcl bl, 1
movzx edx, byte [eax + 0xc]
xchg bl, bh
mov bp, word [esp]
jmp 0x4b3bdc
lea ebx, [ebp + 0xbf]
mov edi, ebx
cmc
jmp 0x4b3c76
and eax, esi
not ebx
mov eax, dword [eax*4 + reloc.KERNEL32.dll_GetProcAddress]
lea edi, [eax - 0xc9]
jmp 0x4b3c47
xor eax, 0x1000000
bswap ebp
bswap edi
jmp 0x4b3d65
mov esi, 0xff
jmp 0x4b3c63
lea esp, [esp + 4]
popal
shr eax, 0x10
lea esp, [esp + 8]
jmp 0x4b3c90
sub esp, 4
mov bl, bh
lea esp, [esp + 2]
and edi, esi
call fcn.004b3cd7
lea esp, [esp + 0x18]
and eax, 0xff000000
sub esp, 0x1c
mov ebp, 0xb6a81780
jmp 0x4b3d4c
mov ebp, 0x448c9044
mov dword [esp + 1], ebp
jmp 0x4b3db2
mov edi, edx
btr ebp, esp
shr edi, 8
sub esp, 0x1a
jmp 0x4b3cf6
lea esp, [esp + 0x20]
movzx edi, byte [edi*4 + 0x490e00]
stc
mov bp, word [esp]
jmp 0x4b3f29
mov edi, edx
mov ebp, dword [esp]
push esp
shr edi, 0x18
jmp 0x4b3d72
xor eax, edi
btr edi, esp
mov edi, dword [esp]
not di
jmp 0x4b3d94
mov al, ah
lea ebx, [ebx*4]
mov dword [esp + 0x1c], edx
sub esp, 6
mov dword [esp], ecx
lea esp, [esp + 2]
jmp 0x4b3ca8
mov dword [ecx + 0xc], edx
sub esp, 0xa
lea esp, [esp + 2]
pushal
jmp 0x4b3dd4
xor eax, edi
cmc
mov ebp, ebx
call fcn.004b3e98
xor eax, ebx
sub esp, 4
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], eax
jmp 0x4b3f5e
pushal
call fcn.004b3f74
mov bh, 0x26
mov ah, 0xd3
cdq
ret
lea edi, [edi + 8]
mov dword [edi], edx
pop edi
cmc
lea ebx, [ecx + 0x8b]
jmp 0x4b3c39
pushal
not ebp
btc eax, edi
mov dword [esp], ecx
popal
jmp 0x4b3f8a
movzx esi, byte [eax + 0xd]
bsr di, cx
not bl
push edi
jmp 0x4b40c5
Function at 0x4b3cd7
Capabilities:
Encrypt data using aes

Disassembly:
mov bp, word [esp]
lea esp, [esp + 1]
mov edi, dword [edi*4 + reloc.KERNEL32.dll_GetProcAddress]
mov bl, 0xf6
mov bl, byte [esp]
jmp 0x4b3cdc
add esp, 3
jmp 0x4b3cb6
not ebp
setg bl
jmp 0x4b3d38
sub esp, 0x12
pushal
add esp, 0x19
lea esp, [esp + 1]
jmp 0x4b3d06
lea esp, [esp + 0x1c]
and edi, 0xff0000
sub bp, 0xa7d0
mov ebx, dword [ecx + 4]
jmp 0x4b3d1f

Function at 0x4b3e2a
Capabilities:
Encrypt data using aes

Disassembly:
and edi, esi
push ebx
mov ebx, edi
jmp 0x4b3e0e
lea ebx, [ebx*4]
lea ebx, reloc.KERNEL32.dll_GetProcAddress
mov edi, dword [ebx]
pop ebx
jmp 0x4b3e6c
lea esp, [esp + 1]
add esp, 1
lea esp, [esp + 2]
popal
neg bp
jmp 0x4b3e03
lea esp, [esp + 4]
Function at 0x405c8c
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x422aa4], 0
push esi
jne 0x405cc3
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x405c9d
mov dword [ecx*4 + 0x422aa0], eax
inc ecx
cmp ecx, 0x100
jl 0x405c98
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x405cf4
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x422aa0]
xor eax, esi
inc ecx
dec edx
jne 0x405cd6
pop edi
not eax
pop esi
ret 0xc

Function at 0x421840
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x17000]
push edi
or ebp, 0xffffffff
jmp 0x421862
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x421869
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x421858
mov eax, 1
add ebx, ebx
jne 0x42187b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x421870
jne 0x42188c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x421870
xor ecx, ecx
sub eax, 3
jb 0x4218a0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x421912
mov ebp, eax
add ebx, ebx
jne 0x4218ab
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x4218b8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x4218dc
inc ecx
add ebx, ebx
jne 0x4218c8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x4218bd
jne 0x4218d9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4218bd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x4218fc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x4218ed
jmp 0x42185e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x4218fc
add edi, ecx
jmp 0x42185e
pop esi
mov edi, esi
mov ecx, 0x12b
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x42191a
cmp byte [edi], 5
jne 0x42191a
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x42191f
lea edi, [esi + 0x1f000]
mov eax, dword [edi]
or eax, eax
je 0x421997
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x26d00]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x26d3c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x42194c
mov ecx, edi
jns 0x42197b
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x26d40]
or eax, eax
je 0x421991
mov dword [ebx], eax
add ebx, 4
jmp 0x421969
call dword [esi + 0x26d50]
mov ebp, dword [esi + 0x26d44]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1e7]
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 0x4219cb
sub esp, 0xffffff80
jmp 0x401e50
Function at 0x4232cf
Capabilities:
Access peb ldr_data
Resolve function by hash

Disassembly:
push ebp
mov ebp, esp
cld
xor edx, edx
mov edx, dword fs:[edx + 0x30]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x14]
mov esi, dword [edx + 0x28]
push 0x18
pop ecx
xor edi, edi
xor eax, eax
lodsb al, byte [esi]
cmp al, 0x61
jl 0x4232f0
sub al, 0x20
ror edi, 0xd
add edi, eax
loop 0x4232e7
cmp edi, 0x6a4abc5b
mov ebx, dword [edx + 0x10]
mov edx, dword [edx]
jne 0x4232df
mov eax, ebx
leave
ret

Function at 0x423316
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push esi
push ebx
push edi
push edx
push ecx
mov eax, dword [ebp + 0xc]
xor edx, edx
xchg edx, eax
mov esi, 0x3c
add esi, dword [ebp + 8]
mov eax, dword [esi]
add eax, dword [ebp + 8]
mov esi, dword [eax + 0x78]
add esi, 0x18
add esi, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ebp - 0x14], eax
add esi, 4
lea edi, [ebp - 8]
lodsd eax, dword [esi]
add eax, dword [ebp + 8]
stosd dword es:[edi], eax
mov dword [ebp - 8], eax
lodsd eax, dword [esi]
add eax, dword [ebp + 8]
push eax
stosd dword es:[edi], eax
mov dword [ebp - 0xc], eax
mov eax, dword [esi]
add eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
pop esi
mov dword [ebp - 4], 0
push esi
mov eax, dword [esi]
add eax, dword [ebp + 8]
xchg edi, eax
mov ebx, edi
push edi
xor al, al
scasb al, byte es:[edi]
jne 0x423375
pop esi
sub edi, ebx
push edx
cld
xor ecx, ecx
dec ecx
mov edx, ecx
xor eax, eax
xor ebx, ebx
lodsb al, byte [esi]
xor al, cl
mov cl, ch
mov ch, dl
mov dl, dh
mov dh, 8
shr bx, 1
rcr ax, 1
jae 0x4233a2
xor ax, 0x8320
xor bx, 0xedb8
dec dh
jne 0x423391
xor ecx, eax
xor edx, ebx
dec edi
jne 0x423382
not edx
not ecx
mov eax, edx
rol eax, 0x10
mov ax, cx
pop edx
cmp edx, eax
je 0x4233c8
pop esi
add esi, 4
add dword [ebp - 4], 1
jmp 0x423369
pop esi
mov eax, dword [ebp - 4]
shl eax, 1
add eax, dword [ebp - 0x10]
xor esi, esi
xchg esi, eax
mov ax, word [esi]
shl ax, 2
add eax, dword [ebp - 8]
xchg esi, eax
mov eax, dword [esi]
add eax, dword [ebp + 8]
pop ecx
pop edx
pop edi
pop ebx
pop esi
leave
ret 8
Function at 0x423c08
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword ds:[ebp - 0x20], 0xff8bff8b
mov dword ds:[ebp - 0x14], 0xff8bff8b
mov dword ds:[ebp - 0x1c], 0xff8bff8b
push 0x7fc
push dword [ebp - 0x20]
call fcn.00423295
push eax
push dword [ebp - 0x20]
lea eax, [ebp - 4]
mov ebx, eax
pop ecx
pop edx
push edx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, edx
jg 0x423de7
push dword [ebp - 4]
call fcn.00423279
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x423cd8
jmp 0x423de7
push dword [ebp - 4]
call fcn.00423279
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 4], eax
jne 0x423d2c
lea eax, [ebp - 4]
push eax
call fcn.00423bee
mov dword [ebp - 0x28], eax
push 0
push 4
push dword [ebp - 0x28]
push dword [ebp - 4]
push 0xffffffff
push dword [ebp - 0x14]
call fcn.004234a0
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x423d2c
mov eax, 1
jmp 0x423d2e
xor eax, eax
test eax, eax
je 0x423ddc
push ebx
push esi
push edx
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x3c]
mov eax, dword [eax]
add eax, ebx
lea eax, [eax + 0x78]
mov eax, dword [eax]
lea esi, [eax + ebx]
mov dword [ebp - 0x10], esi
lea edx, [esi + 0x20]
mov edx, dword [edx]
add edx, ebx
mov edx, dword [edx]
add edx, ebx
mov dword [ebp - 0x18], edx
lea eax, [esi + 0x18]
mov eax, dword [eax]
dec eax
mov dword [ebp - 4], eax
pop ebx
pop esi
pop edx
push dword [ebp - 4]
lea eax, [ebp - 4]
mov ebx, eax
mov ecx, 0
pop edx
push edx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, edx
jg 0x423dd4
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 8]
mov dword [ebp - 0xc], eax
push dword [ebp + 0xc]
push dword [ebp - 0xc]
call dword [ebp - 0x1c]
call fcn.00423a0b
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x423dc3
push edi
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
lea eax, [eax + 0x1c]
mov eax, dword [eax]
add eax, dword [ebp + 8]
lea eax, [eax + edi*4]
mov eax, dword [eax]
add eax, dword [ebp + 8]
pop edi
leave
ret 8
push dword [ebp - 0xc]
call fcn.00423bc7
add dword [ebp - 8], eax
pop ebx
pop ecx
pop edx
inc ecx
jmp 0x423d76
add esp, 0xc
jmp 0x423de7
pop ebx
pop ecx
pop edx
add ecx, 4
jmp 0x423cb1
add esp, 0xc
mov edi, edi
mov edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, 0
jmp 0x423e08
mov esp, ebp
pop ebp
ret 8