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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
xor dword [0x48bba0], 0xda6e4902
mov eax, dword [0x484e5c]
sar eax, 9
add eax, 0x59330155
and eax, 0x4350879b
mov cx, word [0x495474]
movsx ecx, cx
shl ecx, 8
mov edx, dword [0x489a34]
not edx
mov si, word [0x492f46]
movsx esi, si
sar esi, 6
and esi, edx
xor esi, ecx
cmp eax, esi
jne 0x404f55
mov eax, dword [0x48f088]
add dword [0x48a76c], 0x789f7206
add dword [0x48cb38], 0x5576af88
or dword [0x48e994], 0x8f942306
mov eax, dword [0x48b294]
imul eax, eax, 0x38a5de23
cmp eax, 0x924a2090
jg 0x404f86
mov word [0x495fd4], 0x1fc4
jmp 0x404fa3
mov eax, dword [0x489590]
cmp eax, 0x3461faed
jne 0x404fa3
dec dword [0x48fab4]
mov eax, dword [0x485ec4]
dec dword [0x487120]
mov ax, word [0x493dd0]
or eax, 0xddf4
mov word [0x493dd0], ax
push 0x41
push 0x6f68
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x48b5a4]
or eax, 0x28f4
xor eax, 0x9301
mov cx, word [0x494492]
sub ecx, eax
mov word [0x494492], cx
mov ebp, 4
push ebp
push 0x21b7
call fcn.004020cd
add esp, 8
mov ebx, eax
xor dword [0x48bdac], 0x8880931a
lea eax, [esp + 0xd]
push ebx
push eax
call fcn.0043d5f0
add esp, 8
mov word [0x492dba], 0x4c18
push ebp
push 0x69f1
call fcn.004020cd
add esp, 8
mov edi, eax
mov ax, word [0x495464]
lea ecx, [eax + 1]
mov word [0x495464], cx
cwde
mov ecx, 0x193850b0
sub ecx, eax
and ecx, 0x48c42fb8
mov eax, dword [0x48dbac]
imul eax, ecx
mov dword [0x48dbac], eax
push ebx
push ebp
call fcn.0041c522
add esp, 8
mov eax, dword [0x48f160]
shl eax, 0xa
mov cx, word [0x491dce]
or ecx, eax
mov word [0x491dce], cx
lea eax, [esp + 9]
push edi
push eax
call fcn.0043d5f0
add esp, 8
mov eax, dword [0x486694]
lea ecx, [eax - 1]
mov dword [0x486694], ecx
mov ecx, dword [0x487b48]
lea eax, [eax + ecx + 0x1a88dae9]
mov dword [0x487b48], eax
push ebp
push 0x439c
call fcn.004020cd
add esp, 8
mov ebx, eax
xor dword [0x4886f4], 0x1ddbec7b
push edi
push ebp
call fcn.0041c522
add esp, 8
mov dword [0x48a0c0], 0x9c71ab7
lea eax, [esp + 5]
push ebx
push eax
call fcn.0043d5f0
add esp, 8
mov eax, dword [0x4850c8]
imul eax, eax, 0xe0f77e94
mov dword [0x4850c8], eax
push ebx
push ebp
call fcn.0041c522
add esp, 8
add dword [0x48a620], 0x7fe7cdd9
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4059c1
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov eax, dword [0x48cc30]
add dword [0x48be28], 0x819d4434
mov eax, dword [0x48b73c]
imul eax, eax, 0xcc1dd223
mov dword [0x48b73c], eax
mov al, byte [ebx]
mov byte [esp + ebp + 0x15], al
mov eax, dword [0x48c464]
cmp eax, 0x4f40aba3
jne 0x40518a
mov eax, dword [0x487064]
mov edx, ecx
lea ecx, [eax - 1]
mov dword [0x487064], ecx
add eax, 0xb4697f7f
and eax, 0x8d34a8e9
mov ecx, dword [0x48d8c8]
inc ecx
mov dword [0x48d8c8], ecx
and ecx, 0x8d4fd672
cmp eax, ecx
mov ecx, edx
jne 0x40518a
mov eax, dword [0x4893b8]
and dword [0x488dc0], eax
inc ebp
mov eax, dword [0x48961c]
shl eax, 7
or eax, 0x38029ae3
mov dword [0x484d68], eax
mov eax, dword [0x48e4d0]
imul eax, eax, 0x88891491
mov dword [0x48e4d0], eax
cmp ebp, 3
jne 0x4054a0
mov dword [esp], ecx
mov eax, dword [0x48a544]
imul eax, eax, 0x928b7d4
mov cx, word [0x495b32]
add ecx, eax
mov word [0x495b32], cx
mov al, byte [esp + 0x15]
shr al, 2
mov byte [esp + 0x11], al
mov eax, dword [0x48ae78]
dec eax
mov dword [0x48ae78], eax
mov ecx, dword [0x4901d8]
sar ecx, 6
and ecx, eax
mov ax, word [0x49353e]
cwde
or eax, ecx
cmp eax, 0x4087782b
jne 0x405229
mov eax, dword [0x484e24]
lea ecx, [eax - 1]
mov dword [0x484e24], ecx
or eax, 0x36d2
mov cx, word [0x494b5e]
imul ecx, eax
mov word [0x494b5e], cx
mov al, byte [esp + 0x15]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
mov eax, dword [0x489d2c]
inc eax
mov dword [0x489d2c], eax
imul eax, eax, 0x5c1acc62
add eax, 0x34898458
mov ecx, dword [0x48ebf8]
lea edx, [ecx + 1]
mov dword [0x48ebf8], edx
add ecx, 0xa7f4151
and ecx, 0x3b5d9607
cmp eax, ecx
jle 0x405294
mov ax, word [0x4936f6]
cwde
add eax, 0x1f496a48
or eax, 0x98d94ed1
cmp eax, 0xf85129b3
jb 0x405294
inc dword [0x48eb40]
inc dword [0x48b574]
mov eax, dword [0x48fb98]
mov al, byte [esp + 0x16]
shr al, 4
add byte [esp + 0x12], al
inc dword [0x4863a0]
add dword [0x490440], 0x231c592e
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
mov ax, word [0x49655e]
imul eax, eax, 0xffffa1dc
mov word [0x49655e], ax
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
mov ax, word [0x494ea4]
imul eax, eax, 0x4df4
mov word [0x4950ea], ax
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
mov eax, dword [0x484d64]
add eax, 0xc7295ef6
mov ecx, dword [0x48f324]
xor ecx, eax
mov eax, dword [0x489dd8]
imul eax, ecx
mov dword [0x489dd8], eax
add dword [0x4891a8], 0xeb3ddb96
xor ebp, ebp
mov eax, dword [0x49049c]
mov cx, word [0x490fea]
movsx ecx, cx
imul ecx, eax
imul eax, ecx, 0x75dd300e
cmp eax, 0x9a881ac1
jl 0x405349
or dword [0x487358], 0xc7c99684
cmp byte [esp + 0x34], 0
je 0x4053b7
movzx eax, byte [esp + ebp + 0x11]
cmp eax, 0x3e
jb 0x4053b7
mov ax, word [0x493fb4]
add eax, 0x6493
xor eax, 0x6952
mov cx, word [0x4947e0]
and ecx, eax
mov word [0x4947e0], cx
movzx eax, byte [esp + ebp + 0x11]
cmp eax, 0x3e
jne 0x405412
mov eax, dword [0x486380]
dec eax
mov dword [0x486380], eax
imul eax, eax, 0xdb230460
or dword [0x48a1b0], eax
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.0041e8f4
or dword [0x484f54], 0x63c78803
jmp 0x405432
mov eax, dword [0x48a5d8]
shl eax, 8
mov cx, word [0x492d8c]
and ecx, eax
mov word [0x492d8c], cx
movzx eax, byte [esp + ebp + 0x11]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
call fcn.00410922
mov eax, dword [0x48910c]
lea ecx, [eax - 1]
mov dword [0x48910c], ecx
mov ecx, dword [0x489250]
and eax, ecx
dec ecx
mov dword [0x489250], ecx
and eax, 0xf6cf8130
mov ecx, dword [0x490124]
sub ecx, eax
mov dword [0x490124], ecx
jmp 0x40543c
mov dword [0x489b6c], 0x43115888
mov ecx, edi
lea eax, [esp + 9]
push eax
call fcn.0041e8f4
and dword [0x487ca0], 0x62b7d324
xor dword [0x48faa0], 0xdbff76e3
add dword [0x489540], 0x661e9c6f
inc ebp
mov eax, dword [0x486c00]
shl eax, 7
and eax, 0x20201200
xor dword [0x485a3c], eax
cmp ebp, 4
jne 0x405320
mov ax, word [0x492b26]
imul eax, eax, 0xffff8810
mov word [0x492b26], ax
mov eax, dword [0x48ab28]
lea ecx, [eax + 1]
mov dword [0x48ab28], ecx
xor ebp, ebp
cmp eax, 0x651647ec
jne 0x40549d
mov ax, word [0x492604]
and eax, 0x667c
mov word [0x492604], ax
mov ecx, dword [esp]
dec ecx
mov eax, dword [0x48eca0]
xor eax, 0x77ce3636
cmp eax, 0x7523f2d
jg 0x4054c3
mov ax, word [0x4959aa]
add eax, 0x3db4
mov word [0x4959aa], ax
inc ebx
test ecx, ecx
jne 0x40511b
add dword [0x485164], 0xd137ee38
test ebp, ebp
je 0x4059cb
and dword [0x49091c], 0x6a294540
mov eax, dword [0x48b3c0]
dec eax
mov dword [0x48b3c0], eax
and eax, 0x9995b388
cmp eax, 0xfa06a022
jg 0x40551d
mov eax, dword [0x48e7e4]
mov ax, word [0x490d56]
cwde
mov ecx, dword [0x48db44]
lea eax, [ecx + eax - 0x439609de]
mov dword [0x48966c], eax
cmp ebp, 2
jg 0x405577
mov eax, ebp
mov ecx, dword [0x48ab30]
imul ecx, ecx, 0x8166e000
and dword [0x48654c], ecx
mov byte [esp + eax + 0x15], 0
mov ecx, dword [0x48ada4]
or ecx, 0x3961
mov dx, word [0x495d40]
xor edx, ecx
xor edx, 0xc69e
mov word [0x495d40], dx
inc eax
mov cx, word [0x494932]
and ecx, 0x19e3
mov word [0x494932], cx
cmp eax, 3
jne 0x405524
mov eax, dword [0x48b864]
imul eax, eax, 0xab8794f
mov dword [0x48b864], eax
mov al, byte [esp + 0x15]
shr al, 2
mov byte [esp + 0x11], al
add dword [0x48879c], 0xffc7bef1
mov al, byte [esp + 0x15]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
mov ax, word [0x4939e4]
add eax, 0x4ff4
mov word [0x4939e4], ax
mov al, byte [esp + 0x16]
shr al, 4
add byte [esp + 0x12], al
mov ax, word [0x4910f4]
xor eax, 0x7fe1
mov word [0x4910f4], ax
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
mov eax, dword [0x48ee20]
lea ecx, [eax + 1]
mov dword [0x48ee20], ecx
mov cx, word [0x49415c]
movsx ecx, cx
not ecx
imul ecx, eax
mov eax, dword [0x486404]
cmp ecx, eax
jl 0x40562c
mov ax, word [0x4935e4]
cwde
sar eax, 9
add eax, 0x2faf4bd2
cmp eax, 0x550b1d01
jg 0x40562c
mov ax, word [0x492efa]
dec eax
mov word [0x492efa], ax
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
mov eax, dword [0x48a164]
sar eax, 5
or eax, 0xeeefbdac
and dword [0x4875b4], eax
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
mov eax, dword [0x48e5c0]
mov ecx, dword [0x48576c]
sub ecx, eax
mov dword [0x48576c], ecx
mov eax, dword [0x488774]
xor ebx, ebx
cmp eax, 0xe1fe4eba
je 0x4056bb
mov dword [0x488640], 0x73f4634e
jmp 0x4056bb
mov ax, word [0x495a50]
inc eax
mov word [0x495a50], ax
cwde
mov ecx, dword [0x48c9d8]
or ecx, eax
or ecx, 0x851dffbd
mov dword [0x48c9d8], ecx
inc ebx
mov ax, word [0x492ff6]
cwde
add eax, 0x1edf570c
or eax, 0xa5afa506
xor dword [0x48d15c], eax
mov eax, dword [0x487888]
lea ecx, [eax + 1]
mov dword [0x487888], ecx
cmp eax, 0x6004220
jne 0x4056dc
or dword [0x48b624], 0xf4e857a7
jmp 0x4056ed
mov ax, word [0x492262]
cwde
or eax, 0x22f32a7c
mov dword [0x48a7fc], eax
cmp ebx, ebp
jg 0x4058b4
mov eax, dword [0x48feac]
imul eax, eax, 0xffd7fcd7
mov dword [0x48feac], eax
cmp byte [esp + 0x34], 0
je 0x4057c9
movzx eax, byte [esp + ebx + 0x11]
cmp eax, 0x3e
jb 0x4057c9
mov ax, word [0x494cd6]
cwde
sar eax, 4
mov cx, word [0x494bc2]
lea edx, [ecx - 1]
mov word [0x494bc2], dx
movsx ecx, cx
mov edx, dword [0x487784]
inc edx
xor ecx, edx
mov dword [0x487784], edx
xor ecx, 0x4c421050
cmp eax, ecx
jge 0x405773
mov eax, dword [0x48630c]
lea ecx, [eax - 1]
mov dword [0x48630c], ecx
mov ecx, dword [0x4870b8]
shl ecx, 9
sub eax, ecx
mov dword [0x486f44], eax
movzx eax, byte [esp + ebx + 0x11]
cmp eax, 0x3e
jne 0x40582f
mov eax, dword [0x48b214]
mov eax, dword [0x48c218]
lea ecx, [eax - 1]
mov dword [0x48c218], ecx
mov ecx, dword [0x4894fc]
or ecx, eax
or ecx, 0xf93ae16e
mov dword [0x4894fc], ecx
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.0041e8f4
mov eax, dword [0x48c2a0]
imul eax, eax, 0xd4b0be08
mov dword [0x48dac8], eax
jmp 0x40586d
add dword [0x48f2f4], 0x78e70790
movzx eax, byte [esp + ebx + 0x11]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
call fcn.00410922
mov eax, dword [0x48ffec]
lea ecx, [eax - 1]
mov dword [0x48ffec], ecx
mov ecx, dword [0x48e71c]
lea edx, [ecx - 1]
mov dword [0x48e71c], edx
mov edx, dword [0x48750c]
imul edx, ecx
add edx, eax
cmp edx, 0x2adc1000
je 0x405681
mov ax, word [0x49228e]
imul eax, eax, 0x16df
mov word [0x49228e], ax
jmp 0x405681
mov eax, dword [0x488118]
imul eax, eax, 0x20534a40
mov dword [0x488118], eax
mov ecx, edi
lea eax, [esp + 9]
push eax
call fcn.0041e8f4
mov eax, dword [0x48bf68]
mov cx, word [0x490aba]
lea edx, [ecx + 1]
mov word [0x490aba], dx
movsx ecx, cx
imul ecx, eax
mov dword [0x48a964], ecx
mov eax, dword [0x489050]
lea ecx, [eax - 1]
mov dword [0x489050], ecx
cmp eax, 0x583bb32a
jne 0x405681
mov eax, dword [0x48d2b8]
lea ecx, [eax - 1]
mov dword [0x48d2b8], ecx
add eax, 0xa9bd
mov ecx, dword [0x48ac9c]
xor ecx, eax
mov ax, word [0x492156]
or eax, ecx
mov word [0x492156], ax
jmp 0x405681
mov eax, dword [0x48da4c]
imul eax, eax, 0xdfca1142
mov dword [0x48da4c], eax
cmp ebp, 2
jg 0x4059ad
mov ebx, 3
sub ebx, ebp
mov eax, dword [0x48e24c]
shl eax, 0xa
cmp eax, 0x20493f9a
jl 0x4058f4
mov ax, word [0x496892]
xor eax, 0x5574
mov word [0x496892], ax
mov eax, dword [0x488d58]
or eax, 0xaeba95ae
xor eax, 0x41044051
mov ecx, dword [0x48fb44]
sub ecx, eax
mov dword [0x48fb44], ecx
cmp byte [esp + 0x34], 0
je 0x405941
mov ax, word [0x4953ca]
add eax, 0x1a2d
mov word [0x4953ca], ax
mov ecx, edi
lea eax, [esp + 5]
push eax
call fcn.0041e8f4
xor dword [0x485f1c], 0x4cc5dae8
jmp 0x405996
mov ax, word [0x490cd4]
cwde
mov cx, word [0x49154c]
movsx ecx, cx
sar ecx, 0xa
imul ecx, eax
imul eax, ecx, 0xf5649bcf
cmp eax, 0xb5488212
jne 0x405983
mov eax, dword [0x48b0e8]
mov eax, dword [0x48b22c]
lea ecx, [eax + 1]
mov dword [0x48b22c], ecx
add eax, 0xfad7c8a1
or dword [0x48d994], eax
mov ecx, edi
push 0x3d
call fcn.00410922
mov dword [0x48b70c], 0x202ca802
mov eax, dword [0x486658]
imul eax, eax, 0x80402134
mov dword [0x486658], eax
dec ebx
jne 0x4058d4
mov ax, word [0x4935c6]
cwde
or eax, 0x9bc152d
and dword [0x487818], eax
jmp 0x4059cb
add dword [0x485164], 0xd137ee38
and dword [0x484f30], 0xd8c253b5
push esi
push 0x41
call fcn.0041c522
add esp, 8
mov ax, word [0x494d88]
add eax, 0xffffd355
mov word [0x494d88], ax
mov esi, 4
push esi
lea eax, [esp + 0x11]
push eax
call fcn.00410793
add esp, 8
mov ax, word [0x49510a]
xor eax, 0xbd62
mov word [0x49510a], ax
push esi
lea eax, [esp + 0xd]
push eax
call fcn.00410793
add esp, 8
mov ax, word [0x490ba0]
and eax, 0x5c1b
mov word [0x490ba0], ax
push esi
lea eax, [esp + 9]
push eax
call fcn.00410793
add esp, 8
xor dword [0x487710], 0xd722400f
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret