Function at 0x42ad30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x4747c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
lea ebx, [ecx + 0x1e0]
shr edi, 5
mov dword [ebp - 0xac], eax
push 0xf0
mov dword [ebp - 0x60], ecx
lea eax, [edi + 6]
mov dword [ebp + 0x10], edi
lea esi, [eax*4 + 4]
mov dword [ecx + 0x2d0], eax
xor eax, eax
mov dword [ebp - 0x94], esi
push eax
push ebx
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x90], eax
call fcn.00438360
xor edx, edx
add esp, 0xc
mov dword [ebp - 0x68], edx
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
test esi, esi
je 0x42b66e
mov esi, edi
lea eax, [edi - 1]
neg esi
mov dword [ebp - 0x6c], esi
nop dword [eax]
cmp edx, edi
jae 0x42b055
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + edx*4]
movzx eax, byte [ebp - 0x21]
cdq
mov esi, eax
mov dword [ebp - 0x28], ecx
movzx eax, byte [ebp - 0x22]
mov ebx, edx
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebp - 0x23]
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebp - 0x24]
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
mov eax, ecx
shld ebx, esi, 8
shr eax, 0x18
shl esi, 8
or esi, eax
mov eax, ecx
shld ebx, esi, 8
shr eax, 0x10
movzx eax, al
cdq
or ebx, edx
shl esi, 8
or esi, eax
mov eax, ecx
shld ebx, esi, 8
shr eax, 8
movzx eax, al
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, cl
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
mov dword [ebp - 0x2c], ebx
movzx eax, byte [ebp - 0x19]
cdq
mov edi, eax
mov dword [ebp - 0x30], esi
movzx eax, byte [ebp - 0x1a]
mov ebx, edx
shld ebx, edi, 8
cdq
shl edi, 8
or ebx, edx
or edi, eax
movzx eax, byte [ebp - 0x1b]
shld ebx, edi, 8
cdq
shl edi, 8
or ebx, edx
or edi, eax
movzx eax, byte [ebp - 0x1c]
shld ebx, edi, 8
cdq
shl edi, 8
or ebx, edx
or edi, eax
movzx eax, byte [ebp - 0x1d]
shld ebx, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x1e]
or ebx, edx
cdq
shld ebx, edi, 8
or ebx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x1f]
cdq
shld ebx, edi, 8
or ebx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebp - 0x20]
cdq
shld ebx, edi, 8
or ebx, edx
shl edi, 8
mov edx, esi
or edi, eax
mov esi, dword [ebp - 0x2c]
shrd edx, esi, 7
xor edx, dword [ebp - 0x30]
shr esi, 7
and edx, 0xaa00aa
xor esi, dword [ebp - 0x2c]
mov eax, edx
and esi, 0xaa00aa
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
xor dword [ebp - 0x2c], ecx
xor eax, edx
xor dword [ebp - 0x30], eax
mov edx, edi
mov esi, ebx
shrd edx, esi, 7
shr esi, 7
xor edx, edi
xor esi, ebx
and edx, 0xaa00aa
and esi, 0xaa00aa
mov eax, edx
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
mov esi, dword [ebp - 0x2c]
xor eax, edx
mov edx, dword [ebp - 0x30]
xor edi, eax
shrd edx, esi, 0xe
xor ebx, ecx
xor edx, dword [ebp - 0x30]
shr esi, 0xe
and edx, 0xcccc
xor esi, dword [ebp - 0x2c]
mov eax, edx
and esi, 0xcccc
mov ecx, esi
shld ecx, eax, 0xe
xor ecx, esi
shl eax, 0xe
xor dword [ebp - 0x2c], ecx
xor eax, edx
xor dword [ebp - 0x30], eax
mov edx, edi
mov esi, ebx
shrd edx, esi, 0xe
shr esi, 0xe
xor edx, edi
xor esi, ebx
and edx, 0xcccc
and esi, 0xcccc
mov eax, edx
mov ecx, esi
shld ecx, eax, 0xe
shl eax, 0xe
xor eax, edx
xor ecx, esi
mov esi, dword [ebp - 0x30]
xor edi, eax
mov eax, dword [ebp - 0x2c]
xor ebx, ecx
mov edx, esi
xor ecx, ecx
shrd edx, eax, 0x1c
xor edx, esi
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
shl eax, 0x1c
xor ecx, 0
xor dword [ebp - 0x2c], ecx
xor eax, edx
xor esi, eax
mov edx, edi
mov eax, ebx
mov dword [ebp - 0x30], esi
shrd edx, eax, 0x1c
xor ecx, ecx
xor edx, edi
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
shl eax, 0x1c
xor ecx, 0
xor eax, edx
xor ebx, ecx
mov edx, esi
xor edi, eax
mov esi, dword [ebp - 0x2c]
shrd edx, esi, 8
xor edx, edi
shr esi, 8
xor esi, ebx
and edx, 0xff00ff
and esi, 0xff00ff
mov eax, edx
mov ecx, esi
xor edi, edx
shld ecx, eax, 8
xor ebx, esi
mov word [ebp - 0x16], di
xor dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
shl eax, 8
xor dword [ebp - 0x30], eax
mov eax, edx
mov ecx, dword [ebp - 0x30]
mov word [ebp - 0x18], cx
shrd ecx, eax, 0x10
mov eax, ebx
mov word [ebp - 0x10], dx
shr edx, 0x10
shrd edi, eax, 0x10
mov word [ebp - 0xe], bx
shr ebx, 0x10
mov word [ebp - 0xa], bx
mov ebx, dword [ebp - 0x5c]
mov word [ebp - 0x14], cx
mov word [ebp - 0xc], dx
mov word [ebp - 0x12], di
jmp 0x42b5bf
lea edx, [eax + esi]
mov eax, edx
and edx, 3
shr eax, 2
add eax, 0x1e
shl edx, 2
shl eax, 4
mov cx, dx
add eax, dword [ebp - 0x60]
xor edx, edx
mov si, word [eax]
shr si, cl
mov di, word [eax + 0xa]
mov dword [ebp - 0x38], esi
mov word [ebp - 0x18], si
mov si, word [eax + 2]
shr si, cl
mov dword [ebp - 0x3c], esi
mov word [ebp - 0x16], si
mov si, word [eax + 4]
shr si, cl
mov dword [ebp - 0x30], esi
mov word [ebp - 0x14], si
mov si, word [eax + 6]
shr si, cl
mov dword [ebp - 0x40], esi
mov word [ebp - 0x12], si
mov si, word [eax + 8]
shr si, cl
mov dword [ebp - 0x34], esi
mov word [ebp - 0x10], si
mov si, word [eax + 0xc]
mov ax, word [eax + 0xe]
shr ax, cl
shr si, cl
shr di, cl
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x2c], eax
mov word [ebp - 0xa], ax
mov eax, ecx
mov dword [ebp - 0x44], esi
mov word [ebp - 0xc], si
mov esi, dword [ebp + 0x10]
div esi
mov word [ebp - 0xe], di
mov dword [ebp - 0xa8], edx
test edx, edx
je 0x42b10a
cmp esi, 8
jne 0x42b50f
mov eax, ecx
and al, 7
cmp al, 4
jne 0x42b50f
test edx, edx
jne 0x42b129
movups xmm0, xmmword [ebp - 0x18]
movaps xmm1, xmm0
psrlw xmm0, 1
psllw xmm1, 3
orps xmm1, xmm0
andps xmm1, xmmword [0x4657c0]
movups xmmword [ebp - 0x18], xmm1
mov ecx, dword [ebp - 0x10]
mov eax, ecx
mov edi, dword [ebp - 0x14]
xor eax, edi
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0xa]
mov eax, ebx
mov edx, dword [ebp - 0x16]
xor eax, edx
movzx eax, ax
mov dword [ebp - 0x3c], eax
mov eax, ebx
xor eax, ecx
mov esi, dword [ebp - 0xc]
movzx eax, ax
xor ebx, edi
mov dword [ebp - 0x4c], eax
movzx eax, bx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xe]
xor eax, esi
movzx ebx, ax
mov eax, dword [ebp - 0x18]
xor eax, ebx
movzx eax, ax
xor ecx, eax
mov dword [ebp - 0x38], eax
xor edx, dword [ebp - 0x38]
movzx eax, cx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x3c]
xor eax, dword [ebp - 0x2c]
movzx eax, ax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xa]
xor eax, dword [ebp - 0x38]
movzx eax, ax
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x18]
movzx eax, dx
mov dword [ebp - 0x7c], eax
xor eax, dword [ebp - 0x58]
movzx eax, ax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x12]
xor eax, dword [ebp - 0x40]
movzx eax, ax
xor edi, eax
xor esi, eax
movzx edx, di
mov eax, ecx
xor eax, edx
movzx edi, si
movzx eax, ax
mov dword [ebp - 0x80], eax
mov eax, edi
xor eax, dword [ebp - 0x4c]
movzx esi, ax
xor ecx, esi
mov dword [ebp - 0x84], edx
movzx eax, cx
xor edx, ebx
mov dword [ebp - 0x50], eax
mov eax, esi
movzx edx, dx
xor eax, edx
mov dword [ebp - 0xa4], edx
movzx edx, ax
mov eax, esi
xor eax, ebx
mov dword [ebp - 0xa0], esi
movzx ecx, ax
mov eax, dword [ebp - 0x84]
and eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], ecx
and ecx, dword [ebp - 0x3c]
movzx esi, ax
movzx eax, cx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xa0]
and eax, dword [ebp - 0x4c]
movzx ecx, ax
and edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xa4]
xor edx, ecx
and eax, dword [ebp - 0x58]
xor eax, ecx
movzx edx, dx
movzx ecx, ax
mov eax, dword [ebp - 0x80]
and eax, dword [ebp - 0x54]
xor eax, edx
xor eax, esi
xor eax, edi
movzx edi, ax
mov eax, dword [ebp - 0x18]
and eax, dword [ebp - 0x88]
xor eax, ecx
xor eax, esi
xor eax, dword [ebp - 0xa4]
xor eax, dword [ebp - 0x58]
movzx ebx, ax
mov eax, dword [ebp - 0x7c]
and eax, dword [ebp - 0x38]
xor eax, edx
xor eax, dword [ebp - 0x48]
xor eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x3c]
movzx edx, ax
mov eax, dword [ebp - 0x50]
and eax, dword [ebp - 0x78]
xor eax, dword [ebp - 0xa]
xor eax, ecx
mov dword [ebp - 0x64], edx
xor eax, dword [ebp - 0x48]
and edx, edi
xor eax, dword [ebp - 0x34]
movzx esi, ax
mov eax, ebx
xor eax, edi
movzx ecx, dx
movzx eax, ax
mov dword [ebp - 0x48], eax
mov eax, ecx
xor eax, esi
xor ecx, ebx
movzx edx, ax
mov eax, edx
and eax, dword [ebp - 0x48]
xor eax, ebx
movzx eax, ax
mov dword [ebp - 0x9c], eax
mov eax, esi
xor eax, dword [ebp - 0x64]
and ecx, eax
xor ecx, esi
movzx eax, cx
mov dword [ebp - 0x30], eax
xor eax, edx
and eax, esi
mov esi, dword [ebp - 0x9c]
movzx ecx, ax
mov eax, ecx
xor ecx, edx
xor eax, dword [ebp - 0x30]
and ecx, esi
xor eax, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x48]
movzx ebx, ax
movzx edi, cx
mov eax, edi
mov dword [ebp - 0x64], ebx
xor eax, ebx
movzx eax, ax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x30]
xor eax, esi
movzx ecx, ax
mov eax, edi
mov dword [ebp - 0x74], ecx
xor eax, esi
xor ebx, dword [ebp - 0x30]
movzx edx, ax
xor ecx, dword [ebp - 0x44]
movzx eax, bx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x18]
and eax, dword [ebp - 0x30]
movzx eax, ax
mov dword [ebp - 0x48], eax
mov eax, edx
and eax, dword [ebp - 0x34]
movzx ebx, ax
mov eax, edi
and eax, dword [ebp - 0x38]
movzx eax, ax
mov dword [ebp - 0x34], eax
mov eax, esi
and eax, dword [ebp - 0x50]
movzx eax, ax
mov dword [ebp - 0x50], eax
and edx, dword [ebp - 0x3c]
and edi, dword [ebp - 0x7c]
xor edi, dword [ebp - 0x50]
movzx ecx, cx
mov eax, ecx
and ecx, dword [ebp - 0x2c]
and eax, dword [ebp - 0x70]
movzx esi, ax
mov eax, dword [ebp - 0x64]
and eax, dword [ebp - 0x54]
movzx eax, ax
mov dword [ebp - 0x70], eax
movzx eax, dx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x54], eax
mov eax, edx
and eax, dword [ebp - 0x4c]
and edx, dword [ebp - 0xa0]
movzx ecx, cx
xor edx, esi
xor eax, ecx
mov dword [ebp - 0xb0], ecx
movzx ecx, ax
xor edx, ebx
movzx eax, di
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x98]
and eax, dword [ebp - 0x84]
xor eax, ebx
mov dword [ebp - 0x4c], ecx
xor ecx, dword [ebp - 0x34]
movzx edi, ax
mov eax, edi
movzx ecx, cx
xor eax, dword [ebp - 0x54]
xor eax, dword [ebp - 0x48]
movzx eax, ax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
and eax, dword [ebp - 0xa4]
xor eax, ecx
movzx edx, dx
xor eax, esi
movzx ebx, ax
mov eax, dword [ebp - 0x98]
and eax, dword [ebp - 0x40]
xor eax, ecx
mov dword [ebp - 0x3c], ebx
xor eax, dword [ebp - 0x70]
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov eax, edx
xor eax, dword [ebp - 0x34]
movzx ecx, ax
mov eax, dword [ebp - 0x9c]
and eax, dword [ebp - 0x78]
xor eax, ebx
mov ebx, dword [ebp - 0x64]
xor eax, dword [ebp - 0x38]
movzx eax, ax
and ebx, dword [ebp - 0x80]
xor ebx, dword [ebp - 0x2c]
xor dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x2c]
movzx ebx, bx
mov word [ebp - 0xa], dx
mov edx, ebx
xor ebx, dword [ebp - 0x50]
xor edx, edi
xor ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
and edi, dword [ebp - 0x58]
mov dword [ebp - 0x40], ebx
xor edi, eax
mov word [ebp - 0x12], bx
xor edi, ecx
mov ebx, dword [ebp - 0x38]
xor ebx, dword [ebp - 0x74]
xor ebx, dword [ebp - 0x4c]
xor edi, dword [ebp - 0xb0]
not ebx
mov dword [ebp - 0x34], edx
not edi
mov word [ebp - 0x10], dx
mov edx, dword [ebp - 0x30]
and edx, dword [ebp - 0x88]
mov dword [ebp - 0x38], ebx
xor edx, eax
mov eax, dword [ebp - 0x34]
xor edx, dword [ebp - 0x70]
xor eax, ecx
mov word [ebp - 0x18], bx
not eax
mov ebx, dword [ebp - 0x3c]
xor ebx, dword [ebp - 0x74]
xor ebx, dword [ebp - 0x54]
cmp dword [ebp - 0xa8], 0
not ebx
mov dword [ebp - 0x30], edx
mov word [ebp - 0x14], dx
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x16], bx
mov word [ebp - 0xe], di
mov dword [ebp - 0x44], eax
mov word [ebp - 0xc], ax
jne 0x42b50c
mov esi, dword [ebp - 0x8c]
cmp esi, 0xa
jb 0x42b4b0
push 0x2b4
push str._srccrypto_aes_sw.c
push str.rconpos___lenof_aes_key_setup_round_constants_
call fcn.0043cc3e
add esp, 0xc
mov bl, byte [esi + 0x465ab8]
inc esi
mov dword [ebp - 0x8c], esi
xor eax, eax
nop
mov cl, al
mov dl, bl
shr dl, cl
and dl, 1
movzx ecx, dl
xor word [ebp + eax*2 - 0x18], cx
inc eax
cmp eax, 8
jb 0x42b4c0
mov ax, word [ebp - 0xa]
mov bx, word [ebp - 0x16]
mov di, word [ebp - 0xe]
mov dword [ebp - 0x2c], eax
mov ax, word [ebp - 0xc]
mov dword [ebp - 0x44], eax
mov ax, word [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov ax, word [ebp - 0x12]
mov dword [ebp - 0x40], eax
mov ax, word [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov ax, word [ebp - 0x18]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x6c]
mov esi, edx
shr esi, 2
and edx, 3
add esi, 0x1e
shl edx, 2
shl esi, 4
mov cx, dx
add esi, dword [ebp - 0x60]
movzx eax, word [esi]
shr ax, cl
mov ecx, dword [ebp - 0x38]
xor cx, ax
movzx eax, word [esi + 2]
mov word [ebp - 0x18], cx
mov cx, dx
shr ax, cl
mov ecx, dword [ebp - 0x3c]
xor cx, ax
movzx eax, word [esi + 4]
mov word [ebp - 0x16], cx
mov cx, dx
shr ax, cl
mov ecx, dword [ebp - 0x30]
xor cx, ax
movzx eax, word [esi + 6]
mov word [ebp - 0x14], cx
mov cx, dx
shr ax, cl
mov ecx, dword [ebp - 0x40]
xor cx, ax
movzx eax, word [esi + 8]
mov word [ebp - 0x12], cx
mov cx, dx
shr ax, cl
mov ecx, dword [ebp - 0x34]
xor cx, ax
movzx eax, word [esi + 0xa]
mov word [ebp - 0x10], cx
mov cx, dx
shr ax, cl
xor di, ax
movzx eax, word [esi + 0xc]
shr ax, cl
mov ecx, dword [ebp - 0x44]
xor cx, ax
mov word [ebp - 0xe], di
movzx eax, word [esi + 0xe]
mov word [ebp - 0xc], cx
mov cx, dx
shr ax, cl
mov ecx, dword [ebp - 0x2c]
xor cx, ax
mov word [ebp - 0xa], cx
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x18]
and eax, 0xf
shl ax, cl
or word [ebx], ax
lea edi, [ecx + 4]
mov eax, dword [ebp - 0x16]
and eax, 0xf
shl ax, cl
or word [ebx + 2], ax
mov eax, dword [ebp - 0x14]
and eax, 0xf
shl ax, cl
or word [ebx + 4], ax
mov eax, dword [ebp - 0x12]
and eax, 0xf
shl ax, cl
or word [ebx + 6], ax
mov eax, dword [ebp - 0x10]
and eax, 0xf
shl ax, cl
or word [ebx + 8], ax
mov eax, dword [ebp - 0xe]
and eax, 0xf
shl ax, cl
or word [ebx + 0xa], ax
mov eax, dword [ebp - 0xc]
and eax, 0xf
shl ax, cl
or word [ebx + 0xc], ax
mov eax, dword [ebp - 0xa]
and eax, 0xf
shl ax, cl
or word [ebx + 0xe], ax
cmp ecx, 0xc
jne 0x42b63a
add ebx, 0x10
mov dword [ebp - 0x5c], ebx
mov edx, dword [ebp - 0x68]
xor eax, eax
mov esi, dword [ebp - 0x6c]
inc edx
inc esi
mov dword [ebp - 0x68], edx
cmp ecx, 0xc
mov dword [ebp - 0x6c], esi
cmovne eax, edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x90], eax
lea eax, [edi - 1]
cmp edx, dword [ebp - 0x94]
jb 0x42adc0
mov esi, dword [ebp - 0x94]
lea eax, [ebp - 0x28]
push 0x10
push eax
call fcn.00434d70
lea eax, [ebp - 0x18]
push 0x10
push eax
call fcn.00434d70
shr esi, 2
add esp, 0x10
shl esi, 3
cmp esi, 8
jbe 0x42b6be
mov edx, dword [ebp - 0x60]
lea edi, [esi - 9]
shr edi, 3
inc edi
lea ecx, [edx + 0x1f2]
not word [ecx - 2]
lea ecx, [ecx + 0x10]
not word [ecx - 0x10]
not word [ecx - 8]
not word [ecx - 6]
sub edi, 1
jne 0x42b6a2
xor ecx, ecx
jmp 0x42b6c7
xor ecx, ecx
test esi, esi
je 0x42b6e4
mov edx, dword [ebp - 0x60]
lea edi, [edx + 0x1e0]
nop dword [eax]
movzx eax, word [edi]
lea edi, [edi + 2]
imul eax, eax, 0x10001
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jb 0x42b6d0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00437271
mov esp, ebp
pop ebp
ret