joyce8/EMBER2024-capa huggingface dataset:
Function at 0x52bd60
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
sub dx, dx
div cx
mov ch, ch
mov bx, 0xa
mov cl, dl
mov ax, word [ebp - 2]
add dx, 0
add cl, 0x30
sub dx, dx
mov byte [esi + edi + 8], cl
div bx
mov word [ebp - 2], ax
js 0x52c1bd
mov di, di
jns 0x5079df
pop ecx
and eax, 0xd8890fcf
inc edi
add al, byte [eax]
jns 0x52c1bd
add eax, 0x109d6857
pop esp
add al, al
jmp 0x67437932
lea esp, [esp + 4]
shl eax, 4
and dl, 0xf
jb 0x533924
clc
add edx, 0x517f7220
sub edx, 0x517f7220
cmp dl, 9
jbe 0x52bd95
ja 0x52bd8b
mov ch, 0xd8
pop edx
add dl, 0x37
jmp 0x52bd9a
add dl, 0x30
lea ecx, [ecx]
mov byte [esi + ecx], dl
mov esi, esi
inc ecx
cmp ecx, 8
jb 0x515a4e
jae 0x52bdb2
cmp bh, ch
scasb al, byte es:[edi]
or eax, 0x5bf9797
add byte [eax], al
add byte [esi - 0x47], ah
or al, byte [eax]
xchg edi, eax
xchg edi, eax
mov edi, 5
mov cx, 0xa
mov ax, word [ebp - 2]
jno 0x5079a9
loop 0x52bd80
std
push dword [eax + 4]
jo 0x52bdcd
jecxz 0x52bdc3
pop ebp
nop
jo 0x5079a9
fsubr dword [ecx + 0xf085e8b]
test dword [edx + 0x74ffff2e], ecx
add edx, dword [edi - 0x4b]
in eax, 0xf
test byte [edi + 0x2e], bh
invalid
dec edi
jne 0x52bdb9
je 0x52c1c9
jbe 0x52c21f
push ebp
xor edi, edi
jb 0x53392d
lea eax, [esi + 0xf]
ja 0x511467
jbe 0x52c1e0
pop es
rcl byte [edx - 0x7e79f011]
push edx
invalid
jbe 0x511467
invalid
pop eax
stosd dword es:[edi], eax
test al, 0x88
in al, 0xe8
invalid
ficomp dword [esi - 0x18]
lodsb al, byte [esi]
and al, 0xfd
inc dword [ecx + 0xc1]
add byte [ecx + 0x4c4], al
add al, al
jecxz 0x533963
add al, 0
add byte [eax], al
Function at 0x534db0
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [esp + 8]
sub esp, 8
push ebx
mov dword [eax], 0
cmp dword [esp + 0x1c], 1
push esi
push edi
push ebp
jae 0x534dd2
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
xor edi, edi
mov ebp, dword [esp + 0x28]
cmp ebp, edi
je 0x534ed0
lea eax, [edi*4]
mov ecx, 3
sub edx, edx
xor ebx, ebx
div ecx
mov edx, dword [esp + 0x1c]
lea esi, [edx + eax]
mov eax, dword [esp + 0x24]
add eax, edi
inc esi
inc esi
mov dword [esp + 0x10], eax
mov al, byte [eax]
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x14], al
mov dl, byte [ecx + 1]
and al, 3
xor ecx, ecx
mov bl, al
mov al, dl
shl ebx, 4
and dl, 0xf
shr al, 4
mov cl, al
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], 0
or ebx, ecx
mov cl, byte [eax + 2]
xor eax, eax
and ebx, 0x3f
mov al, dl
mov dl, cl
shl eax, 2
and cl, 0x3f
shr dl, 6
mov byte [esp + 0x10], dl
xor edx, edx
or eax, dword [esp + 0x10]
mov dl, cl
mov dword [esp + 0x10], 0
mov cl, byte [esp + 0x14]
shr cl, 2
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 2], cl
mov cl, byte [ebx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 1], cl
cmp ebp, 3
mov ecx, ebp
jb 0x534e89
mov ecx, 3
cmp ecx, 1
jne 0x534e97
mov byte [esi], 0x3d
mov byte [esi + 1], 0x3d
jmp 0x534eb9
and eax, 0x3f
inc esi
cmp ecx, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi - 1], al
jne 0x534eae
mov byte [esi], 0x3d
jmp 0x534eb9
and edx, 0x3f
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi], al
sub ebp, 3
mov eax, dword [esp + 0x20]
add edi, 3
add dword [eax], 4
cmp edi, dword [esp + 0x28]
jb 0x534de0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
Function at 0x535940
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x108
cmp dword [esp + 0x10c], 0
push ebx
push esi
push edi
push ebp
jne 0x535964
mov eax, 0xc9
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x108
ret
cmp dword [esp + 0x124], 0
jne 0x53597e
mov eax, 0xc9
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x108
ret
xor eax, eax
mov edx, dword [esp + 0x11c]
mov ax, word [edx]
add eax, 7
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x11c]
sar eax, 3
mov si, ax
lea eax, [esp + 0x18]
movzx ebp, si
push ebp
push edx
push eax
call fcn.00542230
add esp, 0xc
cmp si, 0xfc
jbe 0x5359c9
mov eax, 0xc9
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x108
ret
mov eax, dword [esp + 0x124]
push eax
call fcn.0053f020
mov esi, dword [esp + 0x124]
add esp, 4
test esi, esi
jne 0x535a77
xor cx, cx
mov eax, dword [esp + 0x124]
add eax, 0x5c
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
movsx eax, cx
mov byte [eax + edx], cl
inc cx
cmp cx, 0x100
jl 0x5359f9
xor di, di
xor edx, edx
mov byte [esp + 0x13], dl
xor ebx, ebx
mov esi, dword [esp + 0x14]
movsx eax, di
inc di
mov bl, dl
add esi, eax
mov edx, dword [esp + 0x11c]
xor eax, eax
mov cl, byte [esi]
mov al, byte [ebx + edx + 2]
xor edx, edx
mov dl, cl
sub eax, edx
xor edx, edx
mov dl, byte [esp + 0x13]
add eax, edx
cdq
xor eax, edx
sub eax, edx
and eax, 0xff
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], al
xor eax, eax
mov al, byte [esp + 0x13]
add edx, eax
mov al, byte [edx]
mov byte [esi], al
lea eax, [ebx + 1]
mov byte [edx], cl
cdq
idiv ebp
cmp di, 0x100
jl 0x535a15
jmp 0x535b3a
mov edx, dword [esp + 0x11c]
push ebp
lea eax, [esp + 0x1c]
push edx
push eax
add esi, 2
call fcn.00542230
lea eax, [esp + ebp + 0x24]
add esp, 0xc
push 4
push esi
push eax
call fcn.00542230
xor cx, cx
mov eax, dword [esp + 0x130]
add esp, 0xc
add eax, 0x5c
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
movsx eax, cx
mov byte [eax + edx], cl
inc cx
cmp cx, 0x100
jl 0x535ab1
xor di, di
xor edx, edx
add ebp, 4
mov byte [esp + 0x13], dl
xor ebx, ebx
mov esi, dword [esp + 0x14]
movsx eax, di
inc di
mov bl, dl
add esi, eax
xor edx, edx
xor eax, eax
mov cl, byte [esi]
mov al, byte [esp + ebx + 0x18]
mov dl, cl
sub eax, edx
xor edx, edx
mov dl, byte [esp + 0x13]
add eax, edx
cdq
xor eax, edx
sub eax, edx
and eax, 0xff
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], al
xor eax, eax
mov al, byte [esp + 0x13]
add edx, eax
mov al, byte [edx]
mov byte [esi], al
lea eax, [ebx + 1]
mov byte [edx], cl
cdq
idiv ebp
cmp di, 0x100
jl 0x535ad0
lea eax, [esp + 0x18]
push 0
push 0x100
push eax
call fcn.00542210
add esp, 0xc
mov edx, dword [esp + 0x14]
push 0x100
mov eax, dword [esp + 0x128]
push edx
push eax
call fcn.0053f070
add esp, 0xc
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x108
ret
Function at 0x535ca0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x174
push esi
push edi
mov esi, dword [esp + 0x194]
mov dword [esi], 0
mov ecx, dword [eax]
test ecx, ecx
jne 0x535ccc
mov ax, 0xcc
pop edi
pop esi
add esp, 0x174
ret
lea eax, [esp + 0x20]
mov edx, dword [esp + 0x184]
push eax
push edx
push ecx
call fcn.00535940
add esp, 0xc
test ax, ax
jne 0x535e18
xor eax, eax
mov al, byte [esp + 0x190]
test eax, eax
je 0x535d14
cmp eax, 1
je 0x535d8e
mov ax, 0xa
pop edi
mov dword [esi], 0
pop esi
add esp, 0x174
ret
mov eax, dword [esp + 0x188]
test eax, eax
je 0x535d35
mov ecx, dword [esp + 0x18c]
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0053f070
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0xc]
push eax
xor edi, edi
push ecx
call fcn.0053f1d0
add esp, 8
xor eax, eax
xor ecx, ecx
xor edx, edx
mov cl, byte [esp + eax + 0xc]
inc eax
mov cl, byte [esp + ecx + 0x7c]
and cl, 0x18
shr cl, 3
mov dl, cl
lea ecx, [eax*2 - 2]
shl edx, cl
or edi, edx
cmp eax, 0x10
jb 0x535d4b
xor eax, eax
mov dword [esp + 8], edi
lea ecx, [esp + 0xb]
mov dl, byte [esp + eax + 0x1c]
sub ecx, eax
inc eax
xor byte [ecx], dl
cmp eax, 4
jb 0x535d76
mov eax, dword [esp + 8]
jmp 0x535dff
mov eax, dword [esp + 0x188]
test eax, eax
je 0x535daf
mov ecx, dword [esp + 0x18c]
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0053f070
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0xc]
push eax
xor edi, edi
push ecx
call fcn.0053f1d0
add esp, 8
xor eax, eax
xor ecx, ecx
xor edx, edx
mov cl, byte [esp + eax + 0xc]
inc eax
mov cl, byte [esp + ecx + 0x7c]
and cl, 3
mov dl, cl
lea ecx, [eax*2 - 2]
shl edx, cl
or edi, edx
cmp eax, 0x10
jb 0x535dc5
xor eax, eax
mov dword [esp + 8], edi
mov cl, byte [esp + eax + 0x1c]
xor byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jb 0x535ded
mov eax, dword [esp + 8]
push 0
mov dword [esi], eax
lea eax, [esp + 0x24]
push 0x15c
push eax
call fcn.00542210
xor ax, ax
add esp, 0xc
pop edi
pop esi
add esp, 0x174
ret
Function at 0x536610
Capabilities:
Encode data using xor

Disassembly:
xor ax, ax
push ebx
push esi
push edi
mov esi, dword [esp + 0x14]
push ebp
test esi, esi
je 0x536677
mov edi, dword [esp + 0x14]
mov cl, byte [edi]
xor ebp, ebp
mov bp, ax
mov dl, cl
shr ax, 4
and ebp, 0xf
and dl, 0xf
xor ebx, ebx
mov bl, dl
and cl, 0xf3
shr cl, 2
inc edi
mov edx, dword [ebx*4 + 0x5c13e0]
xor ebx, ebx
xor dx, ax
xor eax, eax
xor dx, word [ebp*4 + 0x5c13e0]
mov al, cl
mov bx, dx
mov eax, dword [eax + 0x5c13e0]
shr dx, 4
and ebx, 0xf
xor ax, dx
xor ax, word [ebx*4 + 0x5c13e0]
dec esi
jne 0x536623
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x536bc0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebx
mov eax, 0xffffffff
push esi
xor ecx, ecx
push edi
mov edi, dword [esp + 0x14]
cmp edi, ecx
je 0x536bf6
mov edx, dword [esp + 0x10]
xor ebx, ebx
mov bl, byte [edx + ecx]
inc ecx
xor ebx, eax
shr eax, 8
and ebx, 0xff
mov esi, dword [ebx*4 + 0x5c14a0]
xor esi, eax
cmp ecx, edi
mov eax, esi
jb 0x536bd6
not eax
pop edi
pop esi
pop ebx
ret

Function at 0x538c90
Capabilities:
Encode data using xor

Disassembly:
sub esp, 4
mov cl, byte [esp + 8]
push ebx
mov edx, dword [esp + 0x10]
push esi
xor si, si
push edi
cmp dword [esp + 0x1c], 0
push ebp
je 0x538cba
movzx eax, si
inc si
xor byte [eax + edx], cl
movzx ebx, si
cmp ebx, dword [esp + 0x20]
jb 0x538ca9
xor ax, ax
mov al, cl
and ax, 0xf
mov word [esp + 0x12], ax
mov di, word [esp + 0x20]
xor cl, cl
dec di
mov esi, edx
cmp word [esp + 0x20], 0
je 0x538cfc
mov bl, byte [esi]
mov ebp, esi
inc esi
mov al, cl
shl al, 7
mov cl, bl
shr bl, 1
and cl, 1
or bl, al
mov byte [ebp], bl
mov bp, di
dec di
test bp, bp
jne 0x538cdb
test cl, cl
je 0x538d03
or byte [edx], 0x80
mov ax, word [esp + 0x12]
dec word [esp + 0x12]
test ax, ax
jne 0x538cc8
xor ax, ax
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret

Function at 0x539050
Capabilities:
Encode data using xor

Disassembly:
xor ax, ax
sub esp, 8
mov al, byte [esp + 0xc]
push ebx
and ax, 0xf
push esi
mov word [esp + 0xa], ax
push edi
mov eax, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x24]
lea ecx, [eax + ebp - 1]
mov dword [esp + 0x14], ecx
xor bl, bl
mov edi, dword [esp + 0x14]
test bp, bp
lea esi, [ebp - 1]
je 0x5390a1
mov cl, byte [edi]
mov eax, edi
dec edi
mov dl, bl
mov bl, cl
add cl, cl
shr bl, 7
or cl, dl
mov byte [eax], cl
mov ax, si
dec si
test ax, ax
jne 0x539085
test bl, bl
je 0x5390ac
mov eax, dword [esp + 0x14]
or byte [eax], 1
mov ax, word [esp + 0x12]
dec word [esp + 0x12]
test ax, ax
jne 0x539077
xor si, si
test ebp, ebp
je 0x5390d9
mov dl, byte [esp + 0x1c]
mov eax, dword [esp + 0x20]
movzx ecx, si
inc si
xor byte [ecx + eax], dl
movzx ecx, si
cmp ecx, ebp
jb 0x5390c2
xor ax, ax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
Function at 0x53b1b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x88
push ebx
lea ecx, [eax + 7]
shr ecx, 3
push esi
push edi
and eax, 7
mov esi, dword [esp + 0x98]
push ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
jne 0x53b1e0
mov dword [esp + 0x18], 8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x24], eax
je 0x53b2d2
mov eax, dword [esp + 0x10]
xor dword [esi], eax
mov ecx, dword [esp + 0x14]
xor dword [esi + 4], ecx
cmp dword [esp + 0x20], 0
jne 0x53b2a2
cmp dword [esp + 0x1c], 2
push 0
jbe 0x53b283
lea eax, [esp + 0x2c]
push eax
push esi
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
jne 0x53b36d
mov eax, dword [esp + 0x28]
lea ebx, [esp + 0x30]
mov edi, 0x19
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
mov cl, 0x20
add eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [ebx + 4], eax
add ebx, 4
mov eax, dword [esp + 0x28]
mov edx, dword [ebx - 4]
and dl, 0x1f
sub cl, dl
shl eax, cl
mov cl, dl
shr ebp, cl
or eax, ebp
xor dword [esp + 0x34], eax
dec edi
jne 0x53b254
jmp 0x53b2b0
push 0
push esi
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
je 0x53b2b0
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x88
ret
lea eax, [esp + 0x30]
push eax
push esi
call fcn.0053b530
add esp, 8
mov eax, dword [esi]
add esi, 8
mov dword [esp + 0x10], eax
inc dword [esp + 0x20]
mov ecx, dword [esi - 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, dword [esp + 0x24]
jb 0x53b207
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x53b2e8
mov cl, byte [eax + esi]
xor byte [esp + eax + 0x10], cl
inc eax
cmp dword [esp + 0x18], eax
ja 0x53b2da
cmp dword [esp + 0x1c], 2
jbe 0x53b303
lea eax, [esp + 0x30]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.0053b530
add esp, 8
jmp 0x53b328
cmp dword [esp + 0x1c], 1
jne 0x53b317
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x10]
push 0
push 0
push eax
call fcn.0053b380
add esp, 0xc
cmp dword [esp + 0x1c], 1
jbe 0x53b360
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x53b347
mov dl, byte [eax + esi - 8]
lea ecx, [eax + esi]
inc eax
mov byte [ecx], dl
cmp dword [esp + 0x18], eax
ja 0x53b337
mov eax, dword [esp + 0x10]
mov dword [esi - 8], eax
mov ecx, dword [esp + 0x14]
pop ebp
pop edi
mov dword [esi - 4], ecx
pop esi
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x10]
mov dword [esi], eax
mov ecx, dword [esp + 0x14]
mov dword [esi + 4], ecx
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x88
ret
Function at 0x53b530
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
push ebx
push esi
push edi
mov eax, dword [edx]
push ebp
mov esi, dword [esp + 0x14]
add edx, 8
mov ebp, 0xc
add dword [esi + 4], eax
mov ecx, dword [edx - 4]
add dword [esi], ecx
mov ebx, dword [esi]
mov edi, dword [esi + 4]
xor edi, ebx
mov cl, 0x20
shr ebx, 4
mov eax, edi
and bl, 0x1f
add edx, 8
sub cl, bl
shr eax, cl
mov cl, bl
shl edi, cl
or eax, edi
mov cl, 0x20
sub eax, dword [edx - 8]
mov dword [esi + 4], eax
mov edi, dword [esi]
xor edi, eax
shr eax, 7
mov ebx, edi
and al, 0x1f
sub cl, al
shr ebx, cl
mov cl, al
shl edi, cl
or ebx, edi
add ebx, dword [edx - 4]
dec ebp
mov dword [esi], ebx
jne 0x53b54e
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x53b5a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x90
push ebx
lea ecx, [eax + 7]
shr ecx, 3
push esi
push edi
and eax, 7
mov ebx, dword [esp + 0xa0]
push ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jne 0x53b5d0
mov dword [esp + 0x10], 8
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
cmp dword [esp + 0x14], 1
jbe 0x53b6c5
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x14]
sub eax, 2
mov dword [esp + 0x2c], eax
je 0x53b6c5
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x28], 0
jne 0x53b685
lea eax, [esp + 0x30]
push 0
push eax
push ebx
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
jne 0x53b7c2
mov eax, dword [esp + 0x30]
lea edi, [esp + 0x38]
mov esi, 0x19
mov dword [esp + 0x38], eax
mov eax, dword [edi]
mov cl, 0x20
add eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov dword [edi + 4], eax
add edi, 4
mov eax, dword [esp + 0x30]
mov edx, dword [edi - 4]
and dl, 0x1f
sub cl, dl
shl eax, cl
mov cl, dl
shr ebp, cl
or eax, ebp
xor dword [esp + 0x3c], eax
dec esi
jne 0x53b656
jmp 0x53b693
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.0053b7d0
add esp, 8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
xor dword [ebx], eax
mov edx, dword [esp + 0x20]
xor dword [ebx + 4], ecx
mov eax, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x2c]
jb 0x53b614
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x10], eax
je 0x53b6ee
mov eax, dword [esp + 0x10]
lea esi, [ebx + 8]
lea edi, [esp + 0x18]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [esp + 0x14], 1
jne 0x53b716
push 0
push 0
push ebx
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
je 0x53b74c
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x90
ret
cmp dword [esp + 0x14], 2
jne 0x53b73e
push 0
push 0
push ebx
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
je 0x53b74c
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x90
ret
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.0053b7d0
add esp, 8
cmp dword [esp + 0x14], 1
jbe 0x53b7b5
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
xor dword [esp + 0x18], eax
xor dword [esp + 0x1c], ecx
xor ecx, ecx
cmp dword [esp + 0x10], ecx
je 0x53b77f
mov dl, byte [ecx + ebx + 8]
lea eax, [ecx + ebx]
inc ecx
mov byte [eax], dl
cmp dword [esp + 0x10], ecx
mov dl, byte [esp + ecx + 0x17]
mov byte [eax + 8], dl
ja 0x53b768
cmp dword [esp + 0x14], 2
jne 0x53b7a7
push 0
push 0
push ebx
call fcn.0053b380
add esp, 0xc
cmp dword [0x5c1a74], 0
je 0x53b7b5
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x90
ret
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.0053b7d0
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xor dword [ebx], eax
xor dword [ebx + 4], ecx
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x90
ret
Function at 0x53b7d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 4
mov dword [esp], 0xc
push ebx
push esi
mov esi, dword [esp + 0x10]
push edi
mov edi, dword [esp + 0x18]
push ebp
add edi, 0x64
mov ebp, dword [esi]
mov eax, dword [esi + 4]
sub ebp, dword [edi]
mov edx, eax
shr edx, 7
mov ebx, ebp
and dl, 0x1f
mov cl, 0x20
sub cl, dl
sub edi, 8
shl ebx, cl
mov cl, dl
shr ebp, cl
or ebx, ebp
mov cl, 0x20
xor ebx, eax
mov eax, ebx
mov dword [esi], ebx
shr eax, 4
mov edx, dword [edi + 4]
add edx, dword [esi + 4]
and al, 0x1f
mov ebp, edx
sub cl, al
shl ebp, cl
mov cl, al
shr edx, cl
or ebp, edx
xor ebp, ebx
dec dword [esp + 0x10]
mov dword [esi + 4], ebp
jne 0x53b7ea
mov eax, dword [esp + 0x1c]
pop ebp
pop edi
mov ecx, dword [eax + 4]
sub dword [esi], ecx
mov edx, dword [eax]
sub dword [esi + 4], edx
pop esi
pop ebx
add esp, 4
ret

Function at 0x53cb70
Capabilities:
Query environment variable

Disassembly:
sub esp, 4
lea eax, [esp]
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
push 0
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
push ebx
call edi
mov esi, eax
test esi, esi
jne 0x53cb99
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 4
ret
inc esi
push esi
call fcn.005373b0
mov dword [esp + 0x10], eax
add esp, 4
test eax, eax
jne 0x53cbb4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 4
ret
mov eax, dword [esp + 0xc]
push esi
push eax
push ebx
call edi
test eax, eax
jne 0x53cbca
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 4
ret
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
add esp, 4
ret

Function at 0x53cff0
Capabilities:
Encode data using xor

Disassembly:
mov ax, word [esp + 8]
push ebx
and ax, 0x8000
push esi
mov dx, word [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp ax, 1
sbb eax, eax
add dx, dx
inc eax
or ax, dx
mov word [esp + 0x10], ax
xor byte [esp + 0x11], al
mov ax, word [esp + 0x10]
and ax, 1
mov dx, word [esp + 0x10]
cmp ax, 1
mov eax, 0
adc eax, 0xffffffff
and ax, 0x8000
shr dx, 1
or ax, dx
mov word [esp + 0x10], ax
and ax, 1
mov dx, word [esp + 0x10]
cmp ax, 1
mov eax, 0
adc eax, 0xffffffff
mov esi, 0x55
and ax, 0x8000
shr dx, 1
or ax, dx
mov word [esp + 0x10], ax
mov eax, 0x58
mov dl, byte [esp + 0x10]
mov bl, byte [esp + 0x10]
and dl, 0x80
add bl, bl
shr dl, 7
add ecx, 2
or dl, bl
mov byte [esp + 0x10], dl
mov dl, byte [esp + 0x11]
and dl, 1
mov bl, byte [esp + 0x11]
shl dl, 7
shr bl, 1
or dl, bl
mov byte [esp + 0x11], dl
mov bl, byte [esp + 0x10]
xor byte [esp + 0x11], bl
mov dx, word [esp + 0x10]
not dx
mov word [esp + 0x10], dx
xor word [ecx - 2], dx
add word [esp + 0x10], si
dec eax
jne 0x53d073
pop esi
pop ebx
ret
Function at 0x53e7e0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x5c
push ebx
push esi
mov ebx, dword [esp + 0x6c]
push edi
push ebp
cmp ebx, 0x13d
jne 0x53e81c
xor di, di
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
movsx eax, di
shl eax, 2
inc di
mov esi, dword [edx + eax]
mov dword [eax + ecx], esi
movsx eax, di
cmp eax, 9
jbe 0x53e7fe
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
xor ecx, ecx
xor edx, edx
movsx eax, cx
inc cx
mov dword [esp + eax*4 + 0x18], edx
movsx ebp, cx
cmp ebp, 0x14
jbe 0x53e820
mov si, 0x14
mov eax, ebx
shr eax, 5
sub si, ax
and bx, 0x1f
mov word [esp + 0x16], ax
je 0x53e88c
mov ax, 0x20
mov edx, dword [esp + 0x70]
mov word [esp + 0x14], 9
sub ax, bx
mov word [esp + 0x12], ax
movsx edi, si
movsx eax, word [esp + 0x14]
dec si
mov cl, bl
mov eax, dword [edx + eax*4]
mov ebp, eax
shl ebp, cl
mov cl, byte [esp + 0x12]
or dword [esp + edi*4 + 0x18], ebp
movsx edi, si
shr eax, cl
or dword [esp + edi*4 + 0x18], eax
dec word [esp + 0x14]
jns 0x53e85f
jmp 0x53e8a7
mov cx, 9
mov edx, dword [esp + 0x70]
movsx edi, si
movsx eax, cx
dec si
mov ebx, dword [edx + eax*4]
or dword [esp + edi*4 + 0x18], ebx
dec cx
jns 0x53e894
mov dx, 0xb
mov ecx, 0x14
movsx eax, word [esp + 0x16]
mov si, 0x14
sub ecx, eax
cmp ecx, 0x14
ja 0x53e8ee
movsx eax, si
movsx ebp, dx
dec dx
lea edi, [esp + eax*4 + 0x18]
dec si
mov ebx, dword [esp + ebp*4 + 0x18]
movsx eax, dx
shr ebx, 0x1d
or ebx, dword [edi]
mov dword [edi], ebx
mov eax, dword [esp + eax*4 + 0x18]
shl eax, 3
or eax, ebx
movsx ebx, si
mov dword [edi], eax
cmp ebx, ecx
jae 0x53e8c0
mov eax, dword [esp + 0x44]
mov esi, 0
and eax, 0x10000000
mov ecx, dword [esp + 0x78]
cmp eax, 1
adc esi, 0xffffffff
xor di, di
movsx eax, di
inc di
mov edx, dword [esp + eax*4 + 0x44]
xor edx, esi
mov dword [ecx + eax*4], edx
movsx eax, di
cmp eax, 9
jbe 0x53e909
pop ebp
and dword [ecx], 0xfffffff
pop edi
pop esi
pop ebx
add esp, 0x5c
ret
Function at 0x53f020
Capabilities:
Hash data using sha1

Disassembly:
push esi
push 0x5c
mov esi, dword [esp + 0xc]
push 0
push esi
call fcn.00542210
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov dword [esi + 0x10], 0xc3d2e1f0
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
pop esi
ret

Function at 0x53f070
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0x18]
push ebp
mov eax, dword [esi + 0x14]
mov edx, eax
lea ecx, [eax + edi*8]
and edx, 0x1f8
shr edx, 3
cmp ecx, eax
jae 0x53f094
inc dword [esi + 0x18]
mov eax, edi
mov dword [esi + 0x14], ecx
shr eax, 0x1d
add dword [esi + 0x18], eax
test edx, edx
je 0x53f130
lea eax, [esi + edx + 0x1c]
mov ebx, 0x40
sub ebx, edx
cmp ebx, dword [esp + 0x1c]
jle 0x53f0cc
push edi
mov edi, dword [esp + 0x1c]
push edi
push eax
call fcn.00542230
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
ret
mov edi, dword [esp + 0x18]
push ebx
push edi
push eax
call fcn.00542230
add esp, 0xc
xor eax, eax
mov ax, word [0x5c3390]
and eax, 0xffffff00
cmp eax, 0x5000
je 0x53f11f
lea ebp, [esi + 0x1c]
mov edx, 0x10
mov eax, dword [ebp]
add ebp, 4
mov ecx, eax
shl ecx, 0x10
shr eax, 0x10
or ecx, eax
mov eax, ecx
shl eax, 8
shr ecx, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
dec edx
mov dword [ebp - 4], ecx
jne 0x53f0f7
push esi
add edi, ebx
call fcn.0053f670
sub dword [esp + 0x20], ebx
add esp, 4
jmp 0x53f134
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0x40
jl 0x53f1ac
mov ebx, dword [esp + 0x1c]
shr ebx, 6
mov eax, ebx
shl eax, 6
sub dword [esp + 0x1c], eax
push 0x40
lea eax, [esi + 0x1c]
push edi
push eax
call fcn.00542230
add esp, 0xc
xor eax, eax
mov ax, word [0x5c3390]
and eax, 0xffffff00
cmp eax, 0x5000
je 0x53f19d
lea edx, [esi + 0x1c]
mov ecx, 0x10
mov eax, dword [edx]
add edx, 4
mov ebp, eax
shl ebp, 0x10
shr eax, 0x10
or ebp, eax
mov eax, ebp
shl eax, 8
shr ebp, 8
xor ebp, eax
and ebp, 0xff00ff
xor ebp, eax
dec ecx
mov dword [edx - 4], ebp
jne 0x53f176
push esi
add edi, 0x40
call fcn.0053f670
add esp, 4
dec ebx
jne 0x53f14b
mov eax, dword [esp + 0x1c]
add esi, 0x1c
push eax
push edi
push esi
call fcn.00542230
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
ret