Function at 0x4389f8
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov dword [esp], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
xor ecx, ecx
xor edx, edx
xor eax, eax
xor ebx, ebx
mov esi, dword [esp + 0x1c]
mov cl, byte [ebp]
mov dl, byte [ebp + 4]
add ebp, 8
add ecx, 1
mov edi, dword [esp + 0x20]
and ecx, 0xff
mov eax, dword [ebp + ecx*4]
sub dword [esp + 0x18], 0x10
jl 0x438c5f
nop
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi]
mov byte [edi], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 1]
mov byte [edi + 1], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 2]
mov byte [edi + 2], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 3]
mov byte [edi + 3], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 4]
mov byte [edi + 4], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 5]
mov byte [edi + 5], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 6]
mov byte [edi + 6], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 7]
mov byte [edi + 7], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 8]
mov byte [edi + 8], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 9]
mov byte [edi + 9], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xa]
mov byte [edi + 0xa], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xb]
mov byte [edi + 0xb], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xc]
mov byte [edi + 0xc], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xd]
mov byte [edi + 0xd], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xe]
mov byte [edi + 0xe], bl
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
add esi, 0x10
mov bl, byte [ebp + ebx*4]
add edi, 0x10
xor bl, byte [esi - 1]
mov byte [edi - 1], bl
sub dword [esp + 0x18], 0x10
jge 0x438a40
add dword [esp + 0x18], 0x10
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi]
mov byte [edi], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 1]
mov byte [edi + 1], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 2]
mov byte [edi + 2], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 3]
mov byte [edi + 3], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 4]
mov byte [edi + 4], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 5]
mov byte [edi + 5], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 6]
mov byte [edi + 6], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 7]
mov byte [edi + 7], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 8]
mov byte [edi + 8], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 9]
mov byte [edi + 9], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xa]
mov byte [edi + 0xa], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xb]
mov byte [edi + 0xb], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xc]
mov byte [edi + 0xc], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xd]
mov byte [edi + 0xd], bl
sub dword [esp + 0x18], 1
jle 0x438ee5
add dl, al
mov ebx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + ecx*4], ebx
add cl, 1
add bl, al
mov eax, dword [ebp + ecx*4]
mov bl, byte [ebp + ebx*4]
xor bl, byte [esi + 0xe]
mov byte [edi + 0xe], bl
dec ecx
mov dword [ebp - 4], edx
mov byte [ebp - 8], cl
mov ebp, dword [esp]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
add esp, 0x10
ret