joyce8/EMBER2024-capa huggingface dataset:
Function at 0x458040
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 4], eax
test eax, eax
je 0x458067
push 0
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push esi
push edi
push 0x304
push 0
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_RedrawWindow]
push eax
call edi
mov ebx, dword [sym.imp.USER32.dll_GetWindow]
push 0
push dword [0x49d5a8]
call ebx
mov esi, eax
test esi, esi
je 0x4580b7
nop dword [eax + eax]
push 0x100
push 0
push 0
push esi
call edi
push 2
push esi
call ebx
mov esi, eax
test esi, esi
jne 0x4580a0
mov eax, dword [0x49d5cc]
cmp dword [eax + 0x1fc], 0
jne 0x45810e
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [ebp - 0x20]
push 1
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x45810e
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
nop dword [eax]
lea eax, [ebp - 0x20]
push eax
call edi
lea eax, [ebp - 0x20]
push eax
call ebx
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x20]
push eax
call esi
test eax, eax
jne 0x4580f0
push dword [0x49d5a4]
call dword [0x49c898]
cmp dword [ebp - 4], 0
pop edi
pop esi
pop ebx
je 0x458131
push 5
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_ShowWindow]
mov esp, ebp
pop ebp
ret
Function at 0x458c80
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x49b014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x49d5cc]
push edi
mov ax, word [esi + 0x14]
mov word [esi + 0x1f8], ax
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_GetMenu]
test eax, eax
setne al
mov byte [esi + 0x3d1], al
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
jne 0x458d1b
push 1
push dword [0x49d5a8]
call edi
push dword [0x49d5ac]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x458cf4
push 1
push dword [0x49d5ac]
call edi
mov ax, word [esi + 0x14]
mov ecx, 0x180
and ax, cx
mov ecx, 0x100
cmp ax, cx
jne 0x458d16
call fcn.00459ac0
mov byte [esi + 0x3d1], 1
call fcn.00457ca0
mov dword [esi + 0x20c], 0
lea eax, [esi + 0x208]
mov dword [esi + 0x210], 0
mov dword [esi + 0x214], 0
mov dword [esi + 0x218], 0
mov dword [esi + 0x21c], 0
mov dword [esi + 0x220], 0
mov dword [esi + 0x224], 0
mov dword [esi + 0x228], 0
mov dword [esi + 0x22c], 0
mov dword [esi + 0x230], 0
push eax
mov dword [eax], 0x2c
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_GetWindowPlacement]
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x458db2
push 1
push dword [0x49d5a8]
call edi
mov ax, word [esi + 0x14]
mov ecx, 0xfefe
and ax, cx
mov ecx, 0x82
or ax, cx
test byte [esi + 0x1f8], 0x10
mov word [esi + 0x14], ax
jne 0x458e5a
mov ecx, dword [0x49d5d0]
test ecx, ecx
je 0x458e36
movsx eax, word [esi + 0x1c]
cmp dword [ecx], eax
jl 0x458e36
movsx eax, word [esi + 0x1e]
cmp dword [ecx + 4], eax
jl 0x458e36
push 2
push dword [0x49d5a8]
call dword [sym.imp.USER32.dll_MonitorFromWindow]
test eax, eax
je 0x458e36
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x28
push ecx
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
test eax, eax
je 0x458e36
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x28]
movsx eax, word [esi + 0x1c]
cmp eax, ecx
jne 0x458e36
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x24]
movsx eax, word [esi + 0x1e]
cmp eax, ecx
je 0x458e5a
or word [esi + 0x14], 0x14
push dword [0x49d5a4]
call dword [0x49c4d4]
movzx eax, ax
or eax, 2
push eax
push dword [0x49d5a4]
call dword [0x49c4d0]
call fcn.00457de0
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x458e8f
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 0xffffffff
je 0x458e8f
push 8
push 0x401
push dword [esi + 0xb0]
call dword [sym.imp.USER32.dll_CheckMenuItem]
call fcn.00459d00
call fcn.00457ca0
call fcn.004578c0
push 3
push dword [0x49d5a8]
call edi
mov esi, dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push 0
push dword [0x49d5ac]
call esi
push 1
push 0
push dword [0x49d5a8]
call esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov dword [0x49d5e0], 1
pop esi
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
Function at 0x459dc0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, edx
push edi
xor edi, edi
mov dword [ebp - 4], ecx
test esi, esi
je 0x459e98
mov eax, dword [ebp + 8]
nop dword [eax]
cmp ax, word [esi + 2]
jne 0x459e32
test byte [esi], 0x10
je 0x459df1
test ebx, ebx
jne 0x459df5
jmp 0x459e32
test ebx, ebx
jne 0x459e32
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test byte [esi], 8
cwde
je 0x459e09
test eax, eax
jns 0x459e2f
jmp 0x459e0d
test eax, eax
js 0x459e2f
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov cl, byte [esi]
cwde
test cl, 4
je 0x459e23
test eax, eax
jns 0x459e2b
jmp 0x459e27
test eax, eax
js 0x459e2b
movzx edi, word [esi + 4]
test edi, edi
jne 0x459e3c
mov eax, dword [ebp + 8]
cmp byte [esi], 0
jl 0x459e98
add esi, 8
jmp 0x459de0
test cl, 0x40
je 0x459e6f
cmp edi, 0x7d0
jl 0x459e77
mov esi, dword [ebp - 4]
push 0
movzx eax, di
or eax, 0x10000
push eax
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x7d0
jl 0x459e49
mov esi, dword [ebp - 4]
push esi
call dword [sym.imp.USER32.dll_GetMenu]
test eax, eax
je 0x459e98
push 0
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 0xffffffff
je 0x459e98
test al, 1
je 0x459e4c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x459f00
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x49b014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
mov esi, edx
xor eax, eax
mov word [edi], ax
lea eax, [esi - 0x60]
cmp eax, 9
ja 0x459f4f
push 0x3f
lea edx, [ebp - 0x84]
mov ecx, 0x65
call fcn.00458a70
lea eax, [esi - 0x60]
push eax
lea eax, [ebp - 0x84]
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x459f94
lea eax, [esi - 0x70]
cmp eax, 0x17
ja 0x459f6c
lea eax, [esi - 0x6f]
push eax
push 0x48cf5c
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x459f94
xor ecx, ecx
nop
cmp dword [ecx*8 + 0x48cac8], esi
je 0x459f81
inc ecx
cmp ecx, 0x14
jl 0x459f70
jmp 0x459f94
mov ecx, dword [ecx*8 + 0x48cacc]
mov edx, edi
push 0x3f
call fcn.00458a70
add esp, 4
cmp word [edi], 0
jne 0x459fac
push 2
xor eax, eax
push esi
mov word [edi + 2], ax
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
mov word [edi], ax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
Function at 0x45a2d0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x49b014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push edi
push 0
mov edi, ecx
mov dword [ebp - 0x108], edx
push 0x78
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor esi, esi
mov ecx, dword [ebp - 0x108]
movsx eax, word [ecx + 0x12]
cmp esi, eax
jne 0x45a336
movsx edx, word [ecx + esi*2]
lea ecx, [ebp - 0x104]
call fcn.00459f00
lea eax, [ebp - 0x104]
push eax
lea eax, [esi + 0x6e]
push eax
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
push 1
lea eax, [esi + 0x6e]
push eax
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
inc esi
cmp esi, 8
jl 0x45a304
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
Function at 0x45ba00
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x31c
mov eax, dword [0x49b014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x49d758]
push esi
test eax, eax
jne 0x45bad6
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x49d758], eax
mov esi, 1
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0x114
push eax
call dword [sym.imp.kernel32.dll_GetVersionExW]
test eax, eax
je 0x45ba6d
cmp dword [ebp - 0x110], 2
jne 0x45ba6d
cmp dword [ebp - 0x11c], 5
ja 0x45ba6b
jne 0x45ba6d
cmp dword [ebp - 0x118], 0
je 0x45ba6d
xor esi, esi
push 0x1f4
lea eax, [ebp - 0x314]
push 0
push eax
lea esi, [esi*4 + 0x1f4]
call fcn.00462550
add esp, 0xc
mov dword [ebp - 0x318], esi
lea eax, [ebp - 0x318]
push 0
push eax
push esi
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x45bad1
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [0x49d758], eax
mov dword [0x49d754], 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
mov eax, dword [0x49d758]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
Function at 0x45e590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x49b014]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm1, xmmword [0x48d0a0]
xor al, al
push ebx
push esi
mov byte [ebp - 0x412], al
lea esi, [ebp - 0x3fc]
push edi
mov edi, dword [ebp + 8]
mov al, 0x36
mov dword [ebp - 0x420], edx
mov ah, 1
mov dword [ebp - 0x424], ecx
mov edx, 8
mov dword [ebp - 0x41c], edi
mov byte [ebp - 0x411], al
mov dword [ebp - 0x410], 0
mov dword [ebp - 0xc], 0
lea ecx, [edx - 8]
movd xmm0, ecx
lea esi, [esi + 0x40]
pshufd xmm0, xmm0, 0
lea ecx, [edx - 4]
paddd xmm0, xmm1
movups xmmword [esi - 0x50], xmm0
movd xmm0, ecx
lea ecx, [edx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x40], xmm0
movd xmm0, edx
add edx, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x30], xmm0
movd xmm0, ecx
lea ecx, [edx - 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x20], xmm0
cmp ecx, 0x100
jl 0x45e5f0
xor esi, esi
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x418], edx
nop word [eax + eax]
mov cl, al
shr al, 1
shl cl, 7
add al, cl
test ah, ah
je 0x45e695
movzx edx, byte [esi + edi]
mov cl, al
and cl, 1
add cl, 2
movzx ecx, cl
imul edx, ecx
mov ch, byte [ebp - 0x411]
add ch, dl
mov edx, dword [ebp - 0x418]
mov byte [ebp - 0x411], ch
jmp 0x45e69b
mov ch, byte [ebp - 0x411]
mov cl, byte [esi + edi]
xor cl, al
jne 0x45e6bb
test ah, ah
je 0x45e6b1
cmp ch, byte [esi + edi + 1]
sete byte [ebp - 0x412]
mov cl, byte [edi]
mov al, 0x1b
xor ah, ah
xor esi, esi
xor cl, al
mov edx, dword [ebp + edx*4 - 0x40c]
inc esi
mov edi, dword [ebp - 0x418]
add bl, dl
add bl, cl
movzx ebx, bl
mov ecx, dword [ebp + ebx*4 - 0x40c]
mov dword [ebp + edi*4 - 0x40c], ecx
mov dword [ebp + ebx*4 - 0x40c], edx
mov edx, edi
mov edi, dword [ebp - 0x41c]
inc edx
mov dword [ebp - 0x418], edx
cmp edx, 0x100
jl 0x45e660
cmp byte [ebp - 0x412], 0
je 0x45e778
mov edi, dword [ebp - 0x420]
xor esi, esi
mov edx, dword [ebp - 0x410]
mov ebx, dword [ebp - 0xc]
test edi, edi
jle 0x45e762
nop
inc dl
movzx edx, dl
mov ecx, dword [ebp + edx*4 - 0x40c]
mov al, cl
add al, bl
movzx ebx, al
mov eax, dword [ebp + ebx*4 - 0x40c]
mov dword [ebp + edx*4 - 0x40c], eax
mov dword [ebp + ebx*4 - 0x40c], ecx
add cl, al
movzx eax, cl
mov ecx, dword [ebp - 0x424]
mov al, byte [ebp + eax*4 - 0x40c]
xor byte [esi + ecx], al
inc esi
cmp esi, edi
jl 0x45e720
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00460bdc
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00460bdc
mov esp, ebp
pop ebp
ret

Function at 0x465e0c
Capabilities:
Get common file path
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00465c83
Function at 0x501660
Capabilities:
Encode data using xor

Disassembly:
ror byte [eax], cl
mov dword [edi], edx
mov es, word [0x853fb33]
jle 0x4b7cc6
adc eax, 0x65f48189
mov esi, 0x150c26d3
mov dword [eax], esi
lahf
shr byte [edx + 0xb], 0xc7
aas
fisub dword [ecx + 0x2a314e1]
rcl byte [ebx + 0x55]
xor dword [eax + 0x6c], 0xc730d103
push esi
invalid
adc eax, 0xc09f3089
push 0xb
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x9b000]
mov dword [edi + 0xbd710], 0xfa8913e8
push edi
or ebp, 0xffffffff
jmp 0x50168a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x501691
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x501680
mov eax, 1
add ebx, ebx
jne 0x5016a3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x5016b4
jne 0x5016d3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5016d3
dec eax
add ebx, ebx
jne 0x5016c0
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x501698
add ebx, ebx
jne 0x5016cf
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x501725
xor ecx, ecx
sub eax, 3
jb 0x5016eb
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x50175a
sar eax, 1
mov ebp, eax
jmp 0x5016f6
add ebx, ebx
jne 0x5016f6
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5016c4
inc ecx
add ebx, ebx
jne 0x501704
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5016c4
add ebx, ebx
jne 0x501711
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x501706
jne 0x501722
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x501706
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x501744
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x501736
jmp 0x501686
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x501744
add edi, ecx
jmp 0x501686
pop esi
mov edi, esi
mov ecx, 0x658c
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x501762
cmp byte [edi], 0x1d
jne 0x501762
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 0x501767
lea edi, [esi + 0xfd000]
mov eax, dword [edi]
or eax, eax
je 0x5017d6
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x10b058]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x10b15c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x501794
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x10b160]
or eax, eax
je 0x5017d0
mov dword [ebx], eax
add ebx, 4
jmp 0x5017b1
call dword [esi + 0x10b170]
mov ebp, dword [esi + 0x10b164]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x21f]
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 0x50180a
sub esp, 0xffffff80
jmp 0x4b7cb0
Function at 0x430003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
call 0x43000c
nop
nop
nop
pop eax
nop
nop
add eax, 0x403daa
nop
sub eax, 0x403d50
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43001e
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp fcn.00401219

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x403d6f
sub eax, 0x403d15
nop
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
add ebx, 4
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x430030
nop
add eax, 0xc
nop
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
jmp loc.00401219
Function at 0x407a8b
Capabilities:
Hash data using sha256

Disassembly:
cmp dword [0x449804], 2
push esi
push edi
mov edi, edx
mov esi, ecx
jl 0x407a9f
call fcn.0040671f
call fcn.0040808a
xor edx, edx
mov ecx, dword [esi + 0xf4]
mov eax, dword [edx + 0x441330]
mov dword [edx + ecx], eax
add edx, 4
cmp edx, 0x20
jl 0x407aa6
mov eax, dword [esi + 0xf4]
xor dword [eax], 0x2080020
mov eax, dword [esi + 0xf4]
xor dword [eax + 8], edi
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0xc]
or eax, 0x2000
shl eax, 0x10
xor dword [ecx + 0xc], eax
pop edi
pop esi
ret 4
Function at 0x408d29
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
mov edi, edx
test esi, esi
je 0x408d4d
movzx edx, byte [edi]
movzx eax, cl
xor edx, eax
shr ecx, 8
xor ecx, dword [edx*4 + 0x44a430]
inc edi
sub esi, 1
jne 0x408d35
pop edi
mov eax, ecx
pop esi
ret 4
Function at 0x40903a
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
sub esp, 0x1e0
mov eax, dword [0x448020]
xor eax, esp
mov dword [esp + 0x1dc], eax
push ebx
mov eax, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1e8]
mov ebx, edx
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1f0]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1fc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x200]
mov dword [esp + 8], edx
mov dword [esp + 0x14], ecx
push ebp
push esi
push edi
mov edi, dword [esp + 0x200]
mov dword [esp + 0x24], edi
cmp ebx, 0x40
jbe 0x4090da
lea ecx, [esp + 0x100]
call fcn.0041594f
push ebx
mov edx, eax
call fcn.00415b50
lea edx, [esp + 0x1ac]
lea ecx, [esp + 0x100]
call fcn.00415bb9
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1ac]
push 0x20
mov dword [esp + 0x20], eax
pop ebx
xor ebp, ebp
test edi, edi
je 0x4090f6
cmp byte [edx], 0
je 0x4090f6
mov esi, edi
lea edi, [esp + 0x30]
push 0x1a
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
jmp 0x40915a
mov edx, ebp
test ebx, ebx
je 0x40911c
mov esi, eax
lea eax, [esp + 0x168]
sub esi, eax
lea ecx, [esp + 0x168]
add ecx, edx
mov al, byte [esi + ecx]
xor al, 0x36
inc edx
mov byte [ecx], al
cmp edx, ebx
jb 0x409107
cmp ebx, 0x40
jae 0x40913b
push 0x40
pop eax
sub eax, ebx
lea ecx, [esp + 0x168]
push eax
add ecx, ebx
push 0x36
push ecx
call fcn.00424480
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.0041594f
push 0x40
lea edx, [esp + 0x16c]
call fcn.00415b50
test edi, edi
je 0x40916b
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
jne 0x40916b
push 0x1a
pop ecx
lea esi, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
mov byte [edx], 1
push dword [esp + 0x1f8]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x34]
call fcn.00415b50
lea edx, [esp + 0x1cc]
lea ecx, [esp + 0x30]
call fcn.00415bb9
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4091b4
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
je 0x4091b4
mov esi, edi
lea edi, [esp + 0x98]
push 0x1a
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
jmp 0x40921b
test ebx, ebx
je 0x4091da
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x168]
sub edx, eax
lea ecx, [esp + 0x168]
add ecx, ebp
mov al, byte [edx + ecx]
xor al, 0x5c
inc ebp
mov byte [ecx], al
cmp ebp, ebx
jb 0x4091c5
cmp ebx, 0x40
jae 0x4091f9
push 0x40
pop eax
sub eax, ebx
lea ecx, [esp + 0x168]
push eax
add ecx, ebx
push 0x5c
push ecx
call fcn.00424480
add esp, 0xc
lea ecx, [esp + 0x98]
call fcn.0041594f
push 0x40
lea edx, [esp + 0x16c]
call fcn.00415b50
test edi, edi
je 0x40922f
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
jne 0x40922f
push 0x1a
pop ecx
lea esi, [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
mov byte [eax], 1
push 0x20
lea edx, [esp + 0x1d0]
lea ecx, [esp + 0x9c]
call fcn.00415b50
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x98]
call fcn.00415bb9
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00422815
add esp, 0x1e0
ret 0x1c
Function at 0x40926f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1ac
mov eax, dword [0x448020]
xor eax, esp
mov dword [esp + 0x1a8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
push 0x10
push eax
lea eax, [esp + 0x150]
mov dword [esp + 0x1c], edx
push eax
mov dword [esp + 0x24], ecx
call fcn.00423f00
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x158], 0x1000000
push eax
push eax
push eax
push eax
lea eax, [esp + 0x118]
push eax
push 0x14
lea eax, [esp + 0x160]
push eax
call fcn.0040903a
push 0x20
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.00423f00
mov eax, dword [ebp + 0x1c]
add esp, 0xc
dec eax
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf0], eax
xor esi, esi
mov dword [esp + 0x104], ebx
push 0x10
pop eax
push 0x20
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x104], edi
mov byte [esp + 0x17], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x20], esi
pop ebx
mov edi, dword [esp + esi + 0xf0]
test edi, edi
je 0x4093ba
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x12]
push eax
lea eax, [esp + 0x24]
mov edx, esi
push eax
lea eax, [esp + 0x1b]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x1a4]
push eax
push ebx
lea eax, [esp + 0x120]
push eax
call fcn.0040903a
push ebx
lea eax, [esp + 0x198]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.00423f00
add esp, 0xc
xor ecx, ecx
mov al, byte [esp + ecx + 0x108]
xor byte [esp + ecx + 0x128], al
inc ecx
cmp ecx, ebx
jb 0x40939e
sub edi, 1
jne 0x409350
mov esi, dword [esp + 0x1c]
push ebx
lea eax, [esp + 0x12c]
push eax
push dword [esp + esi + 0x104]
call fcn.00423f00
add esi, 4
add esp, 0xc
mov dword [esp + 0x1c], esi
cmp esi, 0xc
jb 0x409341
push 0x44
pop edx
lea ecx, [esp + 0x148]
call fcn.00414c17
mov edx, ebx
lea ecx, [esp + 0x128]
call fcn.00414c17
mov edx, ebx
lea ecx, [esp + 0x108]
call fcn.00414c17
mov edx, ebx
lea ecx, [esp + 0x194]
call fcn.00414c17
mov ecx, dword [esp + 0x1b4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00422815
mov esp, ebp
pop ebp
ret 0x18
Function at 0x4096d5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [0x448020]
xor eax, esp
mov dword [esp + 0x28], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
xor eax, eax
mov dword [esp + 0x10], ebx
cmp dword [edi], 2
lea esi, [edi + 4]
jne 0x40974c
mov ecx, dword [esi]
lea edx, [esp + 0xc]
call fcn.00408087
push eax
push eax
push eax
push eax
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
push 4
mov eax, edx
push eax
push 0x20
pop edx
call fcn.0040903a
xor edx, edx
and dword [esp + 0xc], edx
mov ebx, dword [esp + 0xc]
movzx eax, byte [esp + edx + 0x14]
mov ecx, edx
and ecx, 3
shl ecx, 3
shl eax, cl
xor eax, ebx
inc edx
mov ebx, eax
cmp edx, 0x20
jb 0x40972b
mov ebx, dword [esp + 0x10]
mov dword [esi], eax
xor eax, eax
cmp dword [edi], 3
jne 0x409777
push eax
push eax
push eax
push eax
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
push 0x20
push esi
push 0x20
pop edx
call fcn.0040903a
push 0x20
lea eax, [esp + 0x18]
push eax
push esi
call fcn.00423f00
add esp, 0xc
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00422815
mov esp, ebp
pop ebp
ret