Function at 0x41b450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x30074
call fcn.00448a70
mov eax, dword [0x45b480]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, edx
mov dword [ebp - 0x30060], eax
mov ebx, dword [eax]
push edi
mov edi, dword [ebp + 8]
lea edx, [ecx + esi]
mov dword [ebp - 0x30034], ecx
lea eax, [edx - 2]
mov dword [ebp - 0x3005c], edx
mov dword [ebp - 0x30058], eax
lea eax, [edi + ebx]
mov dword [ebp - 0x30070], edi
mov dword [ebp - 0x30038], eax
dec eax
mov dword [ebp - 0x30064], eax
lea eax, [edx - 2]
push 0x20000
mov dword [ebp - 0x3000c], eax
lea eax, [ebp - 0x30008]
push 0
push eax
mov dword [ebp - 0x3003c], ecx
mov dword [ebp - 0x30030], 0
mov dword [ebp - 0x30040], edi
mov dword [ebp - 0x30048], 0
mov dword [ebp - 0x30014], ecx
mov dword [ebp - 0x30010], edx
call sub.msvcrt.dll_memset
add esp, 0xc
test esi, esi
jne 0x41b525
cmp ebx, 4
jb 0x41ba67
mov eax, dword [ebp - 0x30060]
mov dword [edi], 0xffffffff
mov dword [eax], 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004488a4
mov esp, ebp
pop ebp
ret
cmp ebx, 5
jb 0x41ba67
mov ebx, dword [ebp - 0x30034]
mov dl, 1
mov byte [ebp - 0x30019], dl
mov al, byte [ebx]
inc ebx
mov byte [edi + 4], al
add edi, 5
mov dword [ebp - 0x3002c], edi
mov dword [ebp - 0x30034], ebx
cmp ebx, dword [ebp - 0x30058]
jae 0x41b98f
lea eax, [edi + 4]
mov dword [ebp - 0x30028], eax
lea eax, [edi + 2]
mov dword [ebp - 0x30024], eax
lea eax, [edi + 6]
mov dword [ebp - 0x30020], eax
jmp 0x41b580
cmp edi, dword [ebp - 0x30064]
jae 0x41b989
mov eax, dword [ebp - 0x3003c]
cmp eax, ebx
ja 0x41b624
mov ecx, dword [ebp - 0x3000c]
cmp eax, ecx
jb 0x41b5ac
mov dword [ebp - 0x3003c], ecx
jmp 0x41b624
mov edx, eax
lea esi, [eax + 0x2000]
sub edx, dword [ebp - 0x30014]
and edx, 0x3fff
cmp esi, ecx
jb 0x41b5c6
mov esi, ecx
movzx ecx, byte [eax]
movzx eax, byte [eax + 1]
shl ecx, 5
xor ecx, eax
cmp dword [ebp - 0x3003c], esi
jae 0x41b61e
lea ebx, [ebp - 0x10008]
lea edx, [ebx + edx*4]
mov ebx, dword [ebp - 0x3003c]
lea esp, [esp]
movzx eax, byte [ebx + 2]
lea edx, [edx + 4]
shl ecx, 5
xor ecx, eax
and ecx, 0x7fff
mov eax, dword [ebp + ecx*4 - 0x30008]
mov dword [edx - 4], eax
mov dword [ebp + ecx*4 - 0x30008], ebx
inc ebx
cmp ebx, esi
jb 0x41b5f0
mov ebx, dword [ebp - 0x30034]
mov dword [ebp - 0x3003c], esi
mov ecx, dword [ebp - 0x30010]
lea eax, [ebx - 0x2000]
shl dword [ebp - 0x30030], 1
add ecx, 0xfffffffc
movzx edi, word [ebx]
mov edx, 2
mov dword [ebp - 0x30068], eax
mov eax, ebx
sub eax, dword [ebp - 0x30014]
and eax, 0x3fff
mov dword [ebp - 0x30044], 0xb
mov dword [ebp - 0x3004c], ecx
mov dword [ebp - 0x30050], edx
mov esi, dword [ebp + eax*4 - 0x10008]
mov eax, dword [ebp - 0x30044]
mov dword [ebp - 0x30054], esi
lea ecx, [ecx]
cmp esi, dword [ebp - 0x30068]
jb 0x41b728
cmp word [esi], di
jne 0x41b700
mov eax, ebx
mov edx, esi
cmp ebx, ecx
jae 0x41b6b6
mov esi, dword [ebp - 0x3004c]
nop
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x41b6b0
add eax, 4
add edx, 4
cmp eax, esi
jb 0x41b6a0
mov esi, dword [ebp - 0x30054]
sub edx, eax
mov cl, byte [edx + eax]
mov bl, byte [eax]
inc eax
cmp eax, dword [ebp - 0x30010]
jae 0x41b6ca
cmp cl, bl
je 0x41b6b8
mov ebx, dword [ebp - 0x30034]
sub eax, ebx
mov edx, dword [ebp - 0x30050]
dec eax
cmp eax, edx
jbe 0x41b6f4
mov ecx, ebx
mov edx, eax
sub ecx, esi
mov dword [ebp - 0x30050], edx
mov dword [ebp - 0x3006c], ecx
cmp eax, 0x30
jae 0x41b728
mov eax, dword [ebp - 0x30044]
mov ecx, dword [ebp - 0x3004c]
sub esi, dword [ebp - 0x30014]
and esi, 0x3fff
sub eax, 1
mov dword [ebp - 0x30044], eax
mov esi, dword [ebp + esi*4 - 0x10008]
mov dword [ebp - 0x30054], esi
jne 0x41b680
mov edi, dword [ebp - 0x3002c]
cmp edx, 3
jae 0x41b76f
mov al, byte [ebx]
mov ecx, 1
mov edx, dword [ebp - 0x30024]
mov esi, dword [ebp - 0x30028]
inc edx
mov byte [edi], al
inc edi
mov eax, dword [ebp - 0x30020]
inc eax
mov dword [ebp - 0x3002c], edi
inc esi
mov dword [ebp - 0x30020], eax
mov dword [ebp - 0x30024], edx
mov dword [ebp - 0x30028], esi
jmp 0x41b911
lea ecx, [edx - 3]
mov edx, ecx
cmp ecx, 7
jb 0x41b77e
mov edx, 7
mov eax, dword [ebp - 0x3006c]
mov esi, dword [ebp - 0x30028]
add esi, 2
mov dword [ebp - 0x30028], esi
lea eax, [eax*8 - 8]
or eax, edx
mov edx, dword [ebp - 0x30024]
mov word [edi], ax
add edx, 2
mov eax, dword [ebp - 0x30020]
add edi, 2
add eax, 2
mov dword [ebp - 0x3002c], edi
mov dword [ebp - 0x30020], eax
mov dword [ebp - 0x30024], edx
cmp ecx, 7
jb 0x41b904
sub ecx, 7
cmp dword [ebp - 0x30048], 0
je 0x41b80a
mov eax, ecx
cmp ecx, 0xf
jb 0x41b7e7
mov eax, 0xf
mov ebx, dword [ebp - 0x30048]
shl al, 4
mov dword [ebp - 0x30048], 0
or byte [ebx], al
mov ebx, dword [ebp - 0x30034]
mov eax, dword [ebp - 0x30020]
jmp 0x41b84c
cmp edi, dword [ebp - 0x30038]
jae 0x41ba67
mov eax, ecx
cmp ecx, 0xf
jb 0x41b822
mov eax, 0xf
mov byte [edi], al
inc edx
mov eax, dword [ebp - 0x30020]
mov dword [ebp - 0x30048], edi
inc eax
inc edi
mov dword [ebp - 0x30020], eax
inc esi
mov dword [ebp - 0x3002c], edi
mov dword [ebp - 0x30024], edx
mov dword [ebp - 0x30028], esi
cmp ecx, 0xf
jb 0x41b904
sub ecx, 0xf
cmp edi, dword [ebp - 0x30038]
jae 0x41ba67
mov eax, ecx
cmp ecx, 0xff
jb 0x41b873
mov eax, 0xff
mov byte [edi], al
inc edx
mov eax, dword [ebp - 0x30020]
inc edi
inc eax
mov dword [ebp - 0x3002c], edi
inc esi
mov dword [ebp - 0x30020], eax
mov dword [ebp - 0x30024], edx
mov dword [ebp - 0x30028], esi
cmp ecx, 0xff
jb 0x41b904
add ecx, 0x16
cmp ecx, 0xffff
ja 0x41b8c7
cmp edx, dword [ebp - 0x30038]
ja 0x41ba67
mov word [edi], cx
add eax, 2
add edi, 2
add edx, 2
add esi, 2
jmp 0x41b8ec
cmp eax, dword [ebp - 0x30038]
ja 0x41ba67
xor ebx, ebx
mov dword [edx], ecx
mov word [edi], bx
add eax, 6
mov ebx, dword [ebp - 0x30034]
add edi, 6
add edx, 6
add esi, 6
mov dword [ebp - 0x30028], esi
mov dword [ebp - 0x30024], edx
mov dword [ebp - 0x30020], eax
mov dword [ebp - 0x3002c], edi
or dword [ebp - 0x30030], 1
mov ecx, dword [ebp - 0x30050]
add ebx, ecx
mov cl, byte [ebp - 0x30019]
inc cl
mov dword [ebp - 0x30034], ebx
mov byte [ebp - 0x30019], cl
cmp cl, 0x20
jne 0x41b97d
mov edx, dword [ebp - 0x30040]
mov ecx, dword [ebp - 0x30030]
mov byte [ebp - 0x30019], 0
mov dword [edx], ecx
mov edx, dword [ebp - 0x30024]
cmp esi, dword [ebp - 0x30038]
ja 0x41ba67
mov dword [ebp - 0x30040], edi
add eax, 4
add edi, 4
mov dword [ebp - 0x30020], eax
add edx, 4
mov dword [ebp - 0x3002c], edi
add esi, 4
mov dword [ebp - 0x30024], edx
mov dword [ebp - 0x30028], esi
cmp ebx, dword [ebp - 0x30058]
jb 0x41b580
mov dl, byte [ebp - 0x30019]
mov eax, dword [ebp - 0x3005c]
cmp ebx, eax
jae 0x41b9ec
mov esi, dword [ebp - 0x30038]
lea ecx, [edi + 4]
cmp edi, esi
jae 0x41b9ea
mov al, byte [ebx]
inc dl
mov byte [edi], al
inc ecx
mov eax, dword [ebp - 0x30030]
inc edi
add eax, eax
inc ebx
mov dword [ebp - 0x30030], eax
cmp dl, 0x20
jne 0x41b9e0
mov edx, dword [ebp - 0x30040]
mov dword [edx], eax
xor dl, dl
cmp ecx, esi
ja 0x41ba67
mov dword [ebp - 0x30040], edi
add edi, 4
add ecx, 4
mov eax, dword [ebp - 0x3005c]
cmp ebx, eax
jb 0x41b9a2
cmp ebx, eax
jne 0x41ba67
test dl, dl
je 0x41ba3b
sub edi, dword [ebp - 0x30070]
mov ecx, 0x20
movzx eax, dl
mov edx, dword [ebp - 0x30030]
sub ecx, eax
mov eax, 1
shl edx, cl
shl eax, cl
dec eax
or edx, eax
mov eax, dword [ebp - 0x30040]
mov dword [eax], edx
mov eax, dword [ebp - 0x30060]
mov dword [eax], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004488a4
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x30040]
or edx, 0xffffffff
sub edi, dword [ebp - 0x30070]
mov dword [eax], edx
mov eax, dword [ebp - 0x30060]
mov dword [eax], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004488a4
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0xfffffffb
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004488a4
mov esp, ebp
pop ebp
ret