Function at 0x414590
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, dword [0x467fd0]
xor eax, esp
mov dword [esp + 0x2c], eax
push ebp
mov ebp, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x3c]
cmp byte [esi + 0x148], 9
push edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
je 0x4145d1
pop edi
pop esi
mov eax, 0xfffffffb
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
mov cl, byte [esi]
cmp cl, 5
je 0x4145f5
cmp byte [esi + 1], 1
jne 0x4145f5
pop edi
pop esi
mov eax, 0xfffffffa
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
test ebp, ebp
je 0x414900
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x414900
cdq
and edx, 0x7f
add eax, edx
movsx ecx, cl
sar eax, 7
sub ecx, 3
push ebx
mov dword [esp + 0x14], eax
je 0x4148c5
sub ecx, 1
je 0x414814
sub ecx, 1
je 0x414647
pop ebx
pop edi
pop esi
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4148ea
nop
xor esi, esi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov bl, byte [esp + 0x1d]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x34], edx
push ecx
mov edx, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.004136b0
mov dl, byte [esp + 0x28]
mov al, byte [esp + 0x2a]
add dl, dl
mov cl, bl
shr cl, 7
or cl, dl
mov byte [esp + 0x28], cl
mov cl, al
shr cl, 7
add bl, bl
or cl, bl
mov byte [esp + 0x29], cl
mov cl, byte [esp + 0x2b]
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2c]
mov byte [esp + 0x2a], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x2d]
mov byte [esp + 0x2b], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2e]
mov byte [esp + 0x2c], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x2d], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x30]
mov byte [esp + 0x2e], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x31]
mov byte [esp + 0x2f], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x32]
mov byte [esp + 0x30], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x33]
mov byte [esp + 0x31], dl
mov dl, cl
add esp, 0xc
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x28]
mov byte [esp + 0x26], dl
add cl, cl
mov dl, al
shr dl, 7
or dl, cl
mov cl, byte [esp + 0x29]
mov byte [esp + 0x27], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2a]
add cl, cl
mov byte [esp + 0x28], dl
mov dl, al
shr dl, 7
or dl, cl
movzx ecx, byte [esp + 0x2b]
shr cl, 7
add al, al
or cl, al
mov byte [esp + 0x2a], cl
mov eax, esi
mov byte [esp + 0x29], dl
shr eax, 3
movzx ebx, byte [eax + ebp]
mov edx, esi
and edx, 7
mov cl, 7
sub cl, dl
shr bl, cl
movzx ecx, byte [esp + 0x2b]
and bl, 1
add cl, cl
or bl, cl
mov byte [esp + 0x2b], bl
movzx ebx, byte [esp + 0x2c]
and bl, 0x80
mov cl, dl
shr bl, cl
inc esi
xor byte [eax + edi], bl
cmp esi, 0x80
jl 0x414672
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
test eax, eax
jg 0x414670
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov ebx, dword [esi + 0x44]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4148ea
lea eax, [esp + 0x2c]
push eax
push ebp
push esi
call fcn.00413ab0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
xor edx, dword [esp + 0x30]
xor eax, ebx
mov ebx, dword [esp + 0x34]
xor dword [esp + 0x44], ebx
mov ebx, dword [ebp]
mov dword [edi], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x1c]
dec eax
add esp, 0xc
add ebp, 0x10
add edi, 0x10
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jg 0x414838
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
mov ebx, eax
test eax, eax
jle 0x4148ea
jmp 0x4148d0
push edi
push ebp
push esi
call fcn.00413ab0
dec ebx
add esp, 0xc
add ebp, 0x10
add edi, 0x10
test ebx, ebx
jg 0x4148d0
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00433304
add esp, 0x30
ret
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
xor ecx, esp
xor eax, eax
call fcn.00433304
add esp, 0x30
ret