Function at 0x40e6f0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
mov eax, dword [0x45fc5c]
sub esp, 0x18
not eax
mov dword [0x45f4b8], eax
movsx eax, word [0x463976]
sub eax, 0x36d5167f
xor eax, 0xe2c0531
add dword [0x45e6c0], eax
dec word [0x463976]
mov eax, dword [0x45e624]
shl eax, 8
or dword [0x45d204], eax
movsx eax, word [0x4636b0]
or eax, 0x7452e0ae
xor dword [0x45a5f8], eax
mov eax, dword [0x45fb20]
inc dword [0x45fb20]
xor eax, 0x78cb5221
push ebx
push ebp
push esi
xor ebp, ebp
push edi
cmp eax, 0xbedffff3
jne 0x40e769
imul eax, dword [0x460460], 0x5280090a
mov dword [0x460460], eax
dec word [0x465f4c]
mov ax, word [0x465f4c]
movsx ecx, word [0x467cee]
cwde
sub ecx, 0x1f3b989e
and eax, 0x600202
or eax, 0xb9967dec
cmp ecx, eax
jle 0x40e7a1
imul eax, dword [0x45b314], 0x7a3b0f2c
mov dword [0x45b314], eax
push 0x41
push 0x17f7
call fcn.00410dd0
movsx ecx, word [0x465c7c]
sar ecx, 8
or ecx, 0x8b801604
mov dword [esp + 0x20], eax
xor dword [0x45d68c], ecx
push 4
push 0x1d9e
call fcn.00410dd0
mov edx, dword [0x462cdc]
mov esi, eax
mov ecx, dword [0x460cb4]
lea eax, [esp + 0x2c]
not edx
or ecx, edx
or ecx, 0x2fdb385a
push esi
mov dword [0x460cb4], ecx
push eax
call fcn.0042aec0
mov eax, dword [0x458e94]
add esp, 0x18
inc dword [0x458e94]
cmp eax, 0x9c0dbef8
jge 0x40e831
mov eax, dword [0x463298]
inc dword [0x463298]
cmp eax, 0x7effe59f
jl 0x40e83b
inc dword [0x45ecc0]
mov ax, word [0x4672c6]
jmp 0x40e83b
and dword [0x459f6c], 0x72bb0a8c
push 4
push 0xee4
call fcn.00410dd0
add dword [0x45e4ec], 0x29798368
mov edi, eax
push esi
push 4
call fcn.00410d40
movzx ecx, word [0x46408e]
lea eax, [esp + 0x30]
sub ecx, 0x7c24d592
push edi
mov word [0x46408e], cx
push eax
call fcn.0042aec0
mov eax, 0xffff894a
push 4
mov word [0x46373c], ax
push 0x729
call fcn.00410dd0
movzx ecx, word [0x4682e4]
mov esi, eax
or ecx, 0xc3643202
push edi
mov word [0x4682e4], cx
push 4
call fcn.00410d40
mov ecx, dword [0x45bd34]
lea eax, [esp + 0x4c]
or ecx, dword [0x459120]
push esi
mov dword [0x459120], ecx
dec dword [0x45bd34]
push eax
call fcn.0042aec0
or dword [0x4623c4], 0xa9efff7f
push esi
push 4
call fcn.00410d40
mov edi, dword [esp + 0x68]
add esp, 0x38
mov ebx, dword [esp + 0x38]
mov dword [0x45c93c], 0xd222d36
test edi, edi
je 0x40ece6
movsx eax, word [0x464290]
add eax, 0x12aaf80f
cmp eax, 0x2914d968
jg 0x40e944
movsx ecx, word [0x4685ec]
mov eax, dword [0x45f278]
inc dword [0x45f278]
sar ecx, 2
add eax, ecx
cmp eax, 0xd65b8838
jle 0x40e944
mov eax, dword [0x458e44]
mov ax, word [0x464b7c]
dec word [0x464b7c]
inc dword [0x45954c]
dec edi
mov eax, dword [0x45954c]
mov ecx, dword [0x45e138]
sar ecx, 3
sub ecx, eax
mov dword [esp + 0x30], edi
and ecx, 0x6d49e59e
cmp ecx, 0xc8e53474
jle 0x40e98a
movsx eax, word [0x467b30]
mov ecx, 0x92328dcb
shl eax, 2
sub ecx, eax
xor ecx, 0x5f1e2a2b
mov dword [0x461fb4], ecx
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx]
inc ecx
mov byte [esp + ebp + 0x10], al
inc ebp
mov dword [0x459718], 0x3ff034d9
mov eax, dword [0x45d358]
not eax
mov dword [esp + 0x2c], ecx
imul eax, eax, 0x372c5d30
add eax, 0x256a3d45
or dword [0x459074], eax
movzx eax, word [0x468226]
imul eax, eax, 0x2a817fae
mov word [0x4669a0], ax
inc word [0x468226]
cmp ebp, 3
jne 0x40eccc
and dword [0x461604], 0x909bce83
movzx eax, byte [esp + 0x10]
shr al, 2
mov byte [esp + 0x14], al
xor dword [0x45f734], 0xd5f8585d
movzx eax, byte [esp + 0x10]
and al, 3
shl al, 4
mov byte [esp + 0x15], al
movzx eax, word [0x465148]
movsx ecx, ax
mov eax, dword [0x45c9b8]
sub ecx, eax
movzx eax, byte [esp + 0x11]
add ecx, 0x64c57845
shr al, 4
add byte [esp + 0x15], al
mov word [0x465148], cx
add dword [0x45b958], 0x4e674908
movzx eax, byte [esp + 0x11]
and al, 0xf
shl al, 2
mov byte [esp + 0x16], al
movzx eax, word [0x4684d2]
mov ecx, dword [0x460c7c]
cwde
add ecx, eax
xor ecx, 0xd34107fe
mov dword [0x45a5d0], ecx
inc dword [0x460c7c]
movzx eax, byte [esp + 0x12]
shr al, 6
add byte [esp + 0x16], al
cmp dword [0x45eea4], 0xa21192c7
jne 0x40eac7
inc dword [0x45f528]
mov eax, dword [0x45f528]
mov ecx, dword [0x461bd8]
imul eax, eax, 0x5fa57f63
shl ecx, 7
or ecx, eax
cmp ecx, 0xfad92567
jge 0x40eadf
mov eax, dword [0x461ec0]
mov ecx, dword [0x45b574]
add eax, 0x1157afdd
xor ecx, eax
sub dword [0x4605e4], ecx
jmp 0x40eadf
dec dword [0x4619a8]
mov eax, dword [0x4619a8]
cmp eax, 0xab60887f
je 0x40eadf
mov ax, word [0x465b1e]
mov al, byte [esp + 0x12]
xor esi, esi
and al, 0x3f
mov byte [esp + 0x17], al
and dword [0x45d248], 0x38c8246c
mov eax, dword [0x459b48]
dec dword [0x459b48]
xor eax, 0xf577efb5
or eax, 0x6071ce95
cmp eax, 0x9c9db40d
je 0x40eb1b
add dword [0x461f94], 0x130811ff
mov edi, dword [esp + 0x18]
nop
movzx eax, word [0x467288]
xor eax, 0xa37c25ec
cmp byte [esp + 0x34], 0
mov word [0x464ca0], ax
je 0x40ec21
mov al, byte [esp + esi + 0x14]
cmp al, 0x3d
jbe 0x40ec21
add dword [0x458ddc], 0x924690
cmp al, 0x3e
jne 0x40eb87
imul eax, dword [0x45b038], 0x2cbeff40
mov ecx, ebx
mov dword [0x45b038], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00406770
movzx eax, word [0x4655e2]
imul eax, eax, 0x539e205e
mov word [0x4655e2], ax
jmp 0x40ebe7
mov ax, word [0x4660ea]
mov ecx, dword [0x45fa3c]
cwde
and ecx, eax
or ecx, 0x601b29da
cmp ecx, 0x757bed68
jg 0x40ebd1
mov eax, dword [0x45ded8]
xor eax, 0x8af5adfb
cmp eax, 0xc7f4d1de
jg 0x40ebc1
add dword [0x45c224], 0xc1256b3b
jmp 0x40ebd1
inc dword [0x45c2d8]
mov eax, dword [0x459b7c]
mov eax, dword [0x4597f0]
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
call fcn.00406770
and dword [0x460ca0], 0x5f31df5f
movsx eax, word [0x463dca]
dec word [0x463dca]
add eax, 0x7f4ba11
and eax, 0xf2ee585e
cmp eax, 0x45df603b
jl 0x40ec4b
inc dword [0x461e98]
mov eax, dword [0x461e98]
mov ecx, dword [0x45e2f4]
sub ecx, eax
xor dword [0x45bf38], ecx
jmp 0x40ec4b
or dword [0x4596c0], 0xffa5e069
mov ecx, ebx
movzx eax, byte [esp + esi + 0x14]
movzx eax, byte [eax + edi]
push eax
call fcn.004010d0
imul eax, dword [0x45e910], 0xa38b8890
mov dword [0x45e910], eax
dec dword [0x45fbe0]
inc esi
mov eax, dword [0x45fbe0]
add eax, 0xb2544e33
xor eax, dword [0x45dee4]
xor eax, 0x6f0510d7
mov dword [0x45dee4], eax
dec dword [0x462660]
mov eax, dword [0x462660]
and eax, 0x87619537
xor eax, dword [0x4604f0]
cmp eax, 0x62050c82
jge 0x40ec93
mov dword [0x45bab4], 0x8d90f3c9
cmp esi, 4
jne 0x40eb20
xor dword [0x45c3e4], 0xbd7bd6d7
xor ebp, ebp
mov eax, dword [0x45f7ec]
movsx ecx, word [0x463b54]
mov edi, dword [esp + 0x30]
imul eax, eax, 0x86ce2634
xor ecx, eax
or dword [0x45af08], ecx
dec dword [0x45f7ec]
mov eax, dword [0x458c84]
not eax
xor eax, 0x1f1b181
or dword [0x459c80], eax
test edi, edi
jne 0x40e901
movzx eax, word [0x46577c]
or eax, 0xd69f6da7
mov word [0x46577c], ax
test ebp, ebp
je 0x40f12c
cmp dword [0x45a480], 0x5091340
jge 0x40ed2f
mov eax, dword [0x461db0]
or eax, 0x2dfd1c3e
cmp eax, 0xe5f59dae
jge 0x40ed2f
movzx eax, word [0x467e0a]
and eax, 0x734972fb
mov word [0x467e0a], ax
mov eax, dword [0x461194]
mov edi, 3
shl eax, 7
xor dword [0x461640], eax
cmp ebp, edi
jge 0x40eda0
mov esi, 3
lea edi, [esp + 0x10]
sub esi, ebp
add edi, ebp
mov ecx, esi
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x40ed70
add dword [0x461474], 0x77423b7
mov eax, dword [0x460608]
add eax, dword [0x45a464]
mov dword [0x460608], eax
inc dword [0x45a464]
xor dword [0x45ef60], 0x179ecb3e
dec esi
jne 0x40ed70
lea edi, [esi + 3]
and dword [0x45988c], 0xc5e5d677
movzx eax, byte [esp + 0x10]
shr al, 2
mov byte [esp + 0x14], al
mov eax, dword [0x45edd4]
xor eax, 0x2d534904
or eax, 0x52ac9662
sub dword [0x45e7b4], eax
movzx eax, byte [esp + 0x10]
and al, 3
shl al, 4
mov byte [esp + 0x15], al
mov eax, dword [0x45c9a4]
shl eax, 9
cmp eax, 0xf450f1cb
jg 0x40edf7
imul eax, dword [0x45d120], 0xc0010840
mov dword [0x45d120], eax
movzx eax, byte [esp + 0x11]
shr al, 4
add byte [esp + 0x15], al
add dword [0x459f9c], 0x225d52d
movzx eax, byte [esp + 0x11]
and al, 0xf
shl al, 2
mov byte [esp + 0x16], al
movzx eax, word [0x467746]
xor eax, 0x215a51ad
mov word [0x467746], ax
movzx eax, byte [esp + 0x12]
shr al, 6
add byte [esp + 0x16], al
movzx eax, word [0x467a54]
sub eax, 0x3eee8d7a
mov word [0x467a54], ax
movzx eax, byte [esp + 0x12]
and al, 0x3f
mov byte [esp + 0x17], al
dec dword [0x462ef8]
mov eax, dword [0x462ef8]
or eax, 0x3c3cc8a0
cmp eax, 0xd94a11dc
jle 0x40ee81
movzx eax, word [0x4640f4]
and eax, 0xd1f3bfff
mov word [0x4640f4], ax
jmp 0x40ee98
cmp dword [0x4590c8], 0x9a009280
je 0x40ee98
mov eax, 0xffffde47
mov word [0x4678d4], ax
imul eax, dword [0x4591b0], 0xfb0ffdf1
xor esi, esi
mov dword [0x4591b0], eax
mov dword [0x4623b4], 0x979cb3b1
test ebp, ebp
js 0x40f026
mov edx, 0x6360
movsx ecx, word [0x465188]
mov eax, dword [0x45b17c]
not ecx
xor ecx, 0x5e6946fa
imul eax, ecx
cmp byte [esp + 0x34], 0
mov dword [0x45b17c], eax
je 0x40ef77
mov al, byte [esp + esi + 0x14]
cmp al, 0x3d
jbe 0x40ef77
mov dword [0x459014], 0xf0d00298
mov ecx, ebx
cmp al, 0x3e
jne 0x40ef2e
imul eax, dword [0x458d18], 0xac54fd20
and eax, 0xf94f477a
mov dword [0x459134], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00406770
mov eax, 0xabe
mov word [0x466ce2], ax
jmp 0x40ef59
lea eax, [esp + 0x20]
mov word [0x466b30], dx
push eax
call fcn.00406770
imul eax, dword [0x46008c], 0x6faa887d
or eax, 0x3a7df29c
mov dword [0x459f54], eax
inc dword [0x46008c]
movsx eax, word [0x4652f0]
movzx ecx, word [0x4651a2]
add eax, 0xf0bd80f9
or ecx, eax
mov word [0x4651a2], cx
jmp 0x40efdb
mov ecx, dword [0x46108c]
movsx eax, word [0x467f36]
shl ecx, 0xa
sub ecx, eax
cmp ecx, 0xa6cd30a1
jge 0x40efbc
mov ecx, dword [0x45b4f4]
mov eax, dword [0x461750]
xor ecx, 0xf777bec7
dec dword [0x45b4f4]
or ecx, 0x57648ec5
cmp eax, ecx
je 0x40efbc
mov eax, dword [0x45c218]
mov eax, dword [0x45ee64]
mov ecx, dword [esp + 0x18]
movzx eax, byte [esp + esi + 0x14]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.004010d0
or dword [0x45e3a4], 0x7abefe72
movzx eax, word [0x464412]
inc esi
imul eax, eax, 0xa18d4e98
mov word [0x464412], ax
dec word [0x46602e]
movzx eax, word [0x46602e]
cwde
cmp eax, 0xcd9548c7
jge 0x40f00f
add dword [0x45d300], 0xec6125d4
mov dword [0x4623b4], 0x979cb3b1
mov edx, 0x6360
cmp esi, ebp
jle 0x40eec0
mov eax, dword [0x461ffc]
sar eax, 4
and eax, 0x35ba40be
sub dword [0x458fac], eax
cmp ebp, 3
jge 0x40f122
sub edi, ebp
add dword [0x45a0b4], 0xf6dfdef0
add dword [0x4615a0], 0x35f62b08
cmp byte [esp + 0x34], 0
je 0x40f0ce
dec word [0x4679e6]
mov ax, word [0x4679e6]
cwde
sub eax, 0x2566a241
cmp eax, 0xf230d46e
je 0x40f0ae
mov eax, dword [0x459094]
and eax, 0x64604352
cmp eax, 0x57cff727
je 0x40f0ae
mov ax, word [0x467c5a]
mov ecx, dword [0x45a8d8]
cwde
imul ecx, eax
mov eax, dword [0x45e1e4]
imul eax, ecx
mov word [0x467c5a], ax
dec dword [0x45e1e4]
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
call fcn.00406770
movzx eax, word [0x465420]
add eax, 0x40245c20
mov word [0x465420], ax
jmp 0x40f111
mov eax, dword [0x45c554]
inc dword [0x45c554]
sub eax, 0x60ba5f58
cmp eax, 0x7be72bd0
jg 0x40f0fe
mov eax, dword [0x462608]
mov ecx, dword [0x459818]
add eax, 0x67690943
imul ecx, eax
mov dword [0x459818], ecx
push 0x3d
mov ecx, ebx
call fcn.004010d0
and dword [0x45c6ac], 0x16cad5b4
xor dword [0x45cc48], 0x108012
dec edi
jne 0x40f044
add dword [0x45d4cc], 0xd476839c
dec dword [0x45a32c]
mov eax, dword [0x45a32c]
push dword [esp + 0x18]
and eax, 0xdd7db6fb
or eax, dword [0x45a630]
or eax, 0x9175367b
mov dword [0x45a630], eax
push 0x41
call fcn.00410d40
add dword [0x45a00c], 0x3372f0c8
add esp, 8
movsx eax, word [0x46413c]
mov ecx, 0xb8ce24a5
sub eax, 0x1b652e
mov dword [esp + 0x1c], 0
and eax, 0x357f1f
or dword [0x45cfd8], eax
inc word [0x46413c]
movsx eax, word [0x46519e]
add eax, 0x6b2dac74
mov dword [esp + 0x20], 0
or dword [0x45a510], eax
dec word [0x46519e]
movsx eax, word [0x467e08]
sub ecx, eax
mov dword [esp + 0x24], 0
mov eax, dword [0x45d6c8]
inc word [0x467e08]
pop edi
pop esi
sar eax, 4
pop ebp
pop ebx
cmp ecx, eax
jg 0x40f1e6
add dword [0x45ca10], 0xe67772d9
add esp, 0x18
ret
mov dword [0x459dd4], 0x18aa1b71
add esp, 0x18
ret