Function at 0x459d0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, eax
mov eax, dword [0x2a8894]
dec eax
je 0x45fab
dec eax
je 0x45f12
mov eax, dword [0x2a888c]
dec eax
cmp eax, 4
push esi
push edi
ja case.default.0x459f7
jmp dword [eax*4 + 0x46098]
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45a25
or dword [0x2b2524], 0x80
mov eax, dword [0x2b2520]
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], eax
mov eax, dword [0x2a8888]
test eax, eax
je 0x45a38
inc dword [0x2a8898]
pop edi
pop esi
pop ebx
ret
cmp bl, 0x52
mov eax, 1
mov dword [0x2a8898], eax
je 0x45a68
cmp bl, 0x57
je 0x45a5a
pop edi
pop esi
mov dword [0x2a888c], 0
pop ebx
ret
pop edi
pop esi
mov dword [0x2a8888], 2
pop ebx
ret
pop edi
pop esi
mov dword [0x2a8888], eax
pop ebx
ret
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45a9f
mov eax, dword [0x2b2524]
mov ecx, dword [0x2b2520]
or eax, 0x80
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], ecx
pop edi
pop esi
mov byte [0x2a8884], bl
mov byte [0x2a88a0], 0
mov dword [0x2a8898], 0
mov dword [0x2a8890], 1
mov dword [0x2a888c], 3
pop ebx
ret
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45afc
mov eax, dword [0x2b2524]
mov edx, dword [0x2b2520]
or eax, 0x80
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], edx
mov al, byte [0x2a8884]
pop edi
pop esi
mov byte [0x2a89a0], bl
mov byte [0x2a88a0], al
mov dword [0x2a8898], 0
mov dword [0x2a8890], 1
mov dword [0x2a888c], 4
pop ebx
ret
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45b5c
mov eax, dword [0x2b2524]
mov ecx, dword [0x2b2520]
or eax, 0x80
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], ecx
mov eax, dword [0x2a8888]
dec eax
mov dword [0x2a8898], 0
je 0x45bb4
dec eax
jne 0x45c73
mov dl, byte [0x2a89a0]
pop edi
pop esi
mov byte [0x2a88a1], bl
mov byte [0x2a88a0], dl
mov byte [0x2a8921], 0x5c
mov byte [0x2a8922], 0x5d
mov byte [0x2a8923], 0x47
mov dword [0x2a8890], 0x83
mov dword [0x2a888c], 5
pop ebx
ret
mov cl, byte [0x2a8884]
mov dl, byte [0x2a89a0]
xor eax, eax
mov ax, word [0x693902]
mov byte [0x2a88a0], 0x5c
mov byte [0x2a88a1], 0x5d
mov byte [0x2a88a2], cl
mov byte [0x2a88a3], dl
and eax, 0x2002
sub eax, 2
je 0x45c03
sub eax, 0x2000
jne 0x45c1f
xor eax, eax
mov ah, cl
mov al, dl
shl eax, 7
add eax, 0x653900
jmp 0x45c11
xor eax, eax
mov ah, cl
mov al, dl
shl eax, 7
add eax, 0x673900
mov esi, eax
mov edi, 0x2a88a4
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
xor cl, cl
mov eax, 2
jmp 0x45c30
mov bl, byte [eax + 0x2a88a4]
mov dl, byte [eax + 0x2a88a0]
xor dl, bl
xor dl, byte [eax + 0x2a88a1]
xor dl, byte [eax + 0x2a88a3]
xor dl, byte [eax + 0x2a88a2]
add eax, 5
xor cl, dl
cmp eax, 0x84
jl 0x45c30
mov byte [0x2a8924], cl
mov byte [0x2a8925], 0x47
mov dword [0x2a8890], 0x85
pop edi
pop esi
mov dword [0x2a888c], 5
pop ebx
ret
mov eax, dword [0x2a8898]
mov ecx, dword [0x2a8888]
inc eax
cmp ecx, 2
mov dword [0x2a8898], eax
jne 0x45ca4
cmp eax, 0x80
jae 0x45ca4
mov byte [eax + 0x2a88a1], bl
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45a34
mov eax, dword [0x2b2524]
or eax, 0x80
pop edi
mov dword [0x2b2524], eax
mov eax, dword [0x2b2520]
pop esi
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], eax
pop ebx
ret
movzx eax, bl
dec eax
je 0x45d73
sub eax, 0x80
jne 0x45a34
or byte [0x26df98], 2
mov edx, dword [0x2f5834]
mov eax, dword [edx + 0xc88]
xor ecx, ecx
mov cl, byte [0x693902]
and eax, ecx
test al, 1
jne 0x45a34
mov ecx, dword [0x26df94]
xor eax, eax
mov dword [0x2a88a0], ecx
cmp dword [0x2b30cc], eax
mov dword [0x2a8898], eax
mov dword [0x2a8890], 3
mov dword [0x2a888c], 1
mov dword [0x2a8888], eax
jne 0x45a34
mov eax, dword [0x2b2524]
mov edx, dword [0x2b2520]
pop edi
or eax, 0x80
pop esi
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], edx
pop ebx
ret
mov eax, dword [0x2b30f8]
or byte [0x26df98], 2
test eax, eax
jne 0x45dca
xor eax, eax
mov ax, word [0x693902]
and eax, 0x2002
sub eax, 2
je 0x45db5
sub eax, 0x2000
jne 0x45ebe
push 2
call dword [fcn.002a97c8]
add esp, 4
mov byte [0x2a88a0], al
jmp 0x45ebe
push 1
call dword [fcn.002a9884]
add esp, 4
mov byte [0x2a88a0], al
jmp 0x45ebe
xor eax, eax
mov ax, word [0x693902]
and eax, 0x2002
cmp eax, 2
jne 0x45ead
push 1
call dword [fcn.002a9884]
push 0x42
mov byte [0x2a88a0], 0
call dword [fcn.002b22f4]
add esp, 8
test al, 0xf
mov byte [0x2a88a1], al
jne 0x45e0f
mov dword [0x2a8890], 0x20
jmp 0x45e19
and eax, 0xf
shl eax, 1
mov dword [0x2a8890], eax
push 0
call dword [fcn.002b22f4]
mov byte [0x2a88a2], al
mov eax, dword [0x2a8890]
add esp, 4
test eax, eax
je 0x45e56
mov esi, 0x2a88a3
mov edi, eax
lea esp, [esp]
push 0
call dword [fcn.002b22f4]
add esp, 4
mov byte [esi], al
inc esi
dec edi
jne 0x45e40
mov eax, dword [0x2a8890]
add eax, 3
push eax
push 0x2a88a0
mov dword [0x2a8890], eax
call dword [fcn.002a9820]
add esp, 8
cmp eax, 0xffffffff
jne 0x45e77
call fcn.000459b0
push 1
push 0x2a88a0
call dword [fcn.002a9848]
add esp, 8
cmp eax, 0xffffffff
jne 0x45e91
call fcn.000459b0
push 2
push 0x2a8920
call dword [fcn.002a9848]
add esp, 8
cmp eax, 0xffffffff
jne 0x45ebe
call fcn.000459b0
jmp 0x45ebe
mov ecx, 8
mov esi, 0x2a8920
mov edi, 0x2a88a0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x2b30cc]
test eax, eax
mov dword [0x2a8890], 2
mov dword [0x2a8898], 0
mov dword [0x2a8894], 1
jne 0x45a34
mov eax, dword [0x2b2524]
mov ecx, dword [0x2b2520]
pop edi
or eax, 0x80
pop esi
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], ecx
pop ebx
ret
mov ecx, dword [0x2a8898]
mov eax, dword [0x2b30f8]
inc ecx
test eax, eax
mov dword [0x2a8898], ecx
jne 0x45f6c
xor eax, eax
mov ax, word [0x693902]
and eax, 0x2002
sub eax, 2
je 0x45f56
sub eax, 0x2000
jne 0x45f6c
push ebx
call dword [fcn.002b3158]
mov edx, dword [0x2a8898]
mov byte [edx + 0x2a88a0], al
jmp 0x45f69
push ebx
call dword [fcn.002b22f4]
mov ecx, dword [0x2a8898]
mov byte [ecx + 0x2a88a0], al
add esp, 4
mov edx, dword [0x2a8898]
cmp edx, dword [0x2a8890]
je 0x4608a
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45a36
or dword [0x2b2524], 0x80
mov eax, dword [0x2b2520]
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], eax
pop ebx
ret
mov eax, dword [0x2b30cc]
test eax, eax
jne 0x45fd9
mov eax, dword [0x2b2524]
mov ecx, dword [0x2b2520]
or eax, 0x80
mov dword [0x2b2524], eax
mov dword [0x2b2548], 0xc8
mov dword [0x2b2544], ecx
test bl, 0x40
je 0x4608a
mov eax, dword [0x2b30f8]
test eax, eax
mov ecx, 1
mov dword [0x2a8894], 2
mov dword [0x2a8898], ecx
jne 0x46038
xor eax, eax
mov ax, word [0x693902]
and eax, 0x2002
sub eax, 2
je 0x46022
sub eax, 0x2000
jne 0x46038
push ebx
call dword [fcn.002b3158]
jmp 0x46029
push ebx
call dword [fcn.002b22f4]
mov ecx, dword [0x2a8898]
add esp, 4
mov byte [ecx + 0x2a88a0], al
mov al, byte [ecx + 0x2a88a0]
test al, 0xf
jne 0x4604e
mov dword [0x2a8890], 0x22
jmp 0x4605f
xor edx, edx
mov dl, al
and edx, 0xf
lea ecx, [edx + edx + 2]
mov dword [0x2a8890], ecx
cmp al, 0x41
jne 0x45a36
movzx eax, bl
sub eax, 0x43
je 0x46081
sub eax, 2
jne 0x45a36
mov byte [0x2a88a1], 0xf3
pop ebx
ret
mov byte [0x2a88a1], 0x43
pop ebx
ret
mov dword [0x2a8894], 0
pop ebx
ret