Function at 0x403ff0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
movsx eax, word [0x43912e]
and eax, 0xb7ef2fbb
or eax, 0x16492239
and dword [0x44c7a4], eax
movsx eax, word [0x43b410]
sar eax, 0xa
push ebx
imul eax, eax, 0x433c843f
push esi
push edi
push 0x41
push 0x3bd
mov dword [0x45505c], eax
xor esi, esi
mov dword [0x450bf4], 0xb6158b56
mov dword [0x448f4c], 0xd5ffc77a
and dword [0x44afe8], 0x44ca45b7
add dword [0x449a1c], 0xc7166380
call fcn.00410130
mov ecx, dword [0x44b0c0]
mov edx, 0x7b0ec5c8
sub edx, ecx
mov dword [ebp - 0xc], eax
and dword [0x4543b0], edx
inc dword [0x44b0c0]
push 4
push 0x13c
call fcn.00410130
or dword [0x44e134], 0x1060ca08
mov ebx, eax
lea eax, [ebp - 0x10]
push ebx
push eax
call fcn.00421120
inc dword [0x44c7c0]
add esp, 0x18
mov ecx, dword [0x44c7c0]
movsx eax, word [0x4398be]
imul ecx, ecx, 0x3e5b8ab7
and ecx, 0x589ca82c
cmp ecx, eax
jne 0x4040cb
and dword [0x44be78], 0x88a3cecc
jmp 0x4040e6
mov eax, dword [0x44caac]
not eax
cmp eax, 0x4c4e72e1
jg 0x4040e6
mov ax, word [0x437d3e]
inc word [0x437d3e]
push 4
push 0x186e
call fcn.00410130
and dword [0x444fcc], 0x574f752e
mov edi, eax
push ebx
push 4
call fcn.00420d00
inc dword [0x445180]
add esp, 0x10
mov ecx, dword [0x445180]
and ecx, 0x56638a7f
cmp ecx, 0x3e2b30b6
jl 0x404149
mov eax, dword [0x451a9c]
dec dword [0x451a9c]
sub eax, 0x6a31a0f5
cmp eax, 0x243deced
jg 0x404149
imul eax, dword [0x455e50], 0x165de6e
mov dword [0x455e50], eax
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.00421120
xor dword [0x444690], 0xe5fdfffd
push 4
push 0x3b7
call fcn.00410130
mov ecx, dword [0x453f30]
mov ebx, eax
imul ecx, ecx, 0x3d60e541
push edi
push 4
sub dword [0x44f740], ecx
call fcn.00420d00
dec dword [0x44325c]
add esp, 0x18
mov ecx, dword [0x44325c]
xor ecx, 0x554bd843
cmp ecx, 0x87a80128
jle 0x4041ae
add dword [0x452cf0], 0x800425a
jmp 0x4041b9
mov eax, 0x7000
mov word [0x4394c2], ax
lea eax, [ebp - 0x18]
push ebx
push eax
call fcn.00421120
mov eax, dword [0x443ca4]
add eax, 0xbb54883f
xor dword [0x440d6c], eax
push ebx
push 4
call fcn.00420d00
mov ecx, dword [0x44a740]
add esp, 0x10
mov eax, dword [0x44a1d0]
xor ecx, 0xfb7effdd
inc dword [0x44a740]
or ecx, 0x417eec19
sub eax, 0x4062702a
cmp eax, ecx
jge 0x404227
movsx eax, word [0x43f3f8]
shl eax, 0xa
cmp eax, 0x329c6faf
jg 0x404227
movzx eax, word [0x43a764]
sub eax, 0x71d36d2f
mov word [0x43a764], ax
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
test edi, edi
je 0x404657
mov edx, dword [ebp + 8]
jmp 0x404240
mov ecx, dword [0x44ba14]
dec edi
mov eax, dword [0x44363c]
and ecx, 0xacf099d7
imul eax, ecx
mov dword [ebp + 0xc], edi
mov dword [0x44363c], eax
inc dword [0x44ba14]
mov eax, dword [0x44dfe8]
imul eax, dword [0x448ea8]
mov dword [0x448ea8], eax
mov al, byte [edx]
mov byte [ebp + esi - 4], al
inc esi
movsx eax, word [0x437e72]
add eax, eax
sub dword [0x445a24], eax
mov eax, dword [0x45598c]
shl eax, 8
cmp eax, 0x8223a012
jge 0x4042de
movsx ecx, word [0x43b33c]
movsx eax, word [0x43664e]
sar ecx, 7
not eax
add eax, ecx
and eax, 0x5e1f1ee9
cmp eax, 0xe72ef1c5
je 0x4042de
movsx eax, word [0x435e10]
mov ecx, 0xe426a1e2
sub ecx, eax
movzx eax, word [0x4365e0]
xor eax, ecx
mov word [0x4365e0], ax
inc word [0x435e10]
dec word [0x439738]
inc edx
mov ax, word [0x439738]
movsx ecx, word [0x43b89e]
cwde
shl ecx, 3
add eax, 0xd798cd4
mov dword [ebp + 8], edx
cmp eax, ecx
je 0x40431e
mov eax, dword [0x451fb4]
movzx ecx, word [0x43fe40]
imul eax, eax, 0xe81b880e
and ecx, eax
mov word [0x43fe40], cx
cmp esi, 3
jne 0x404645
or dword [0x44a0e0], 0x2464c620
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
dec dword [0x447c10]
mov eax, dword [0x447c10]
or eax, 0x12b87784
add eax, dword [0x456124]
mov dword [0x456124], eax
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
mov eax, dword [0x452f04]
and eax, dword [0x4439e4]
mov dword [0x4439e4], eax
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
add dword [0x44fe24], 0xc55509ff
movzx eax, byte [ebp - 3]
mov ecx, dword [0x4477e8]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
mov eax, dword [0x441f2c]
shl ecx, 0xa
xor eax, ecx
add dword [0x447dc8], eax
inc dword [0x441f2c]
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
mov ax, word [0x436626]
cwde
cmp dword [0x4554b0], eax
jg 0x4043d1
add dword [0x441804], 0xf02f402
mov al, byte [ebp - 2]
xor esi, esi
mov ecx, dword [0x4479bc]
and al, 0x3f
mov byte [ebp - 5], al
and ecx, 0x375fe1b2
movzx eax, word [0x43b00e]
sub eax, ecx
mov word [0x43b00e], ax
mov ecx, dword [0x447404]
mov eax, dword [0x4428bc]
not ecx
or ecx, 0x73585f71
xor eax, 0x6d1f3653
cmp ecx, eax
jl 0x404424
movzx eax, word [0x43a754]
sub eax, 0x1b313c6b
mov word [0x43a754], ax
mov edi, dword [ebp - 0xc]
jmp 0x404430
inc dword [0x453278]
mov eax, dword [0x453278]
or eax, 0xc497876e
imul eax, dword [0x454068]
cmp byte [ebp + 0x10], 0
mov dword [0x454068], eax
je 0x40456b
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x40456b
cmp dword [0x44b994], 0x3f81dbdb
jge 0x404481
movzx eax, word [0x43b1fc]
add eax, 0xcdb3e64
mov word [0x43b1fc], ax
cmp cl, 0x3e
jne 0x4044e4
mov eax, dword [0x45564c]
mov ecx, ebx
or eax, dword [0x442d38]
mov dword [0x45564c], eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041f650
movsx eax, word [0x437534]
imul ecx, eax, 0xe5f7b407
mov eax, dword [0x44c364]
dec dword [0x44c364]
xor eax, 0xd7ffefa9
or eax, 0x1497ae21
and ecx, 0xa23ea08a
cmp eax, ecx
jle 0x404530
mov eax, dword [0x451cb0]
add eax, 0xfb89e40
or eax, 0xd692b0bf
sub dword [0x45230c], eax
jmp 0x404530
inc dword [0x45568c]
mov eax, dword [0x45568c]
cmp eax, 0x76befa64
jle 0x404513
mov eax, dword [0x44ff38]
not eax
cmp eax, 0xbe4feed7
jge 0x404513
imul eax, dword [0x44c9ec], 0xd3caebd2
mov dword [0x44c9ec], eax
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.0041f650
movzx eax, word [0x4371ec]
sub eax, 0x46b73073
mov word [0x4371ec], ax
mov ecx, dword [0x451e44]
mov eax, dword [0x44a0bc]
add ecx, 0xd1f2b71f
inc dword [0x44a0bc]
xor eax, 0x9e2e9560
cmp ecx, eax
jne 0x4045ed
movzx eax, word [0x435578]
sub eax, 0x392d0d17
mov word [0x435578], ax
jmp 0x4045ed
inc word [0x435d7a]
mov ax, word [0x435d7a]
mov ecx, dword [0x4421ac]
cwde
not ecx
imul ecx, eax
mov eax, dword [0x4527a0]
sar eax, 3
cmp ecx, eax
jg 0x4045ca
inc dword [0x44a1b8]
mov eax, dword [0x44a1b8]
cmp eax, 0xe9800899
je 0x4045ae
add dword [0x44c628], 0x7f68f6fd
jmp 0x4045ca
mov eax, dword [0x4515cc]
mov ecx, dword [0x452584]
shl eax, 2
xor ecx, eax
xor ecx, 0x2e188015
mov dword [0x452584], ecx
movzx eax, byte [ebp + esi - 8]
mov ecx, ebx
movzx eax, byte [eax + edi]
push eax
call fcn.00422ff0
movzx eax, word [0x43c012]
xor eax, 0x2c15e1b5
mov word [0x43c012], ax
mov eax, dword [0x449f28]
inc esi
imul eax, eax, 0x48a7fbf9
and dword [0x44cda4], eax
movzx eax, word [0x43d85e]
add eax, 0x2ffb9fda
mov word [0x43d85e], ax
cmp esi, 4
jne 0x404430
movzx eax, word [0x43bb38]
xor esi, esi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
imul eax, eax, 0xf53cfdff
mov word [0x43bb38], ax
mov eax, dword [0x454c24]
and eax, dword [0x44be80]
mov dword [0x454c24], eax
xor dword [0x452860], 0xa03a201
test edi, edi
jne 0x404240
imul eax, dword [0x446e7c], 0xd4046058
mov dword [0x446e7c], eax
test esi, esi
je 0x404bc8
imul eax, dword [0x447318], 0xdeff6f60
mov ecx, 0x2c5438cb
or eax, 0x88ddeda6
sub dword [0x447ee4], eax
mov eax, dword [0x443f98]
sub ecx, eax
and ecx, 0x82b66952
or dword [0x4500b0], ecx
cmp esi, 3
jge 0x4046ef
mov ebx, 3
lea edi, [ebp - 4]
sub ebx, esi
add edi, esi
mov ecx, ebx
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
mov edi, edi
and dword [0x440aec], 0xee09c07f
mov eax, dword [0x44ae4c]
mov dword [0x449e78], eax
inc dword [0x44ae4c]
imul eax, dword [0x44d774], 0x87b63c9d
mov dword [0x44d774], eax
dec ebx
jne 0x4046c0
mov ebx, dword [ebp + 0x14]
and dword [0x450d88], 0xac65ac9d
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
mov eax, dword [0x451210]
movzx ecx, word [0x438e7c]
add eax, 0x99676378
and ecx, eax
movzx eax, byte [ebp - 4]
and al, 3
mov word [0x438e7c], cx
shl al, 4
mov byte [ebp - 7], al
mov eax, dword [0x4483e8]
movsx ecx, word [0x43cbae]
imul eax, eax, 0xd21b0b3e
not ecx
or ecx, eax
cmp ecx, 0x9c45f506
jg 0x404774
imul ecx, dword [0x442590], 0x5961820c
mov eax, dword [0x44c3e4]
not eax
xor ecx, 0x838bbbb3
cmp eax, ecx
je 0x404791
inc dword [0x45603c]
mov eax, dword [0x448e10]
mov eax, dword [0x446b84]
jmp 0x404791
mov eax, dword [0x449688]
mov ecx, dword [0x454c80]
sar eax, 1
xor ecx, eax
sar ecx, 1
or ecx, 0x5550ecb6
sub dword [0x450ecc], ecx
mov al, byte [ebp - 3]
mov ecx, dword [0x44aa88]
shr al, 4
not ecx
add byte [ebp - 7], al
mov eax, dword [0x441458]
imul ecx, eax
mov eax, dword [0x44836c]
add eax, 0x1d3e1aa5
add ecx, 0x845a3fd2
cmp eax, ecx
jle 0x4047fb
imul ecx, dword [0x45144c], 0x6a932dff
mov eax, dword [0x442bd8]
add eax, 0xf6c0d42
xor ecx, 0x33c06782
cmp ecx, eax
jne 0x4047fb
mov ecx, dword [0x4455d0]
mov eax, dword [0x455364]
and ecx, 0xe9837d7b
imul eax, ecx
mov dword [0x455364], eax
inc dword [0x4455d0]
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
dec dword [0x442738]
mov eax, dword [0x442738]
movsx ecx, word [0x436248]
sar ecx, 2
add ecx, eax
cmp ecx, 0x2d7ee353
jg 0x40482f
or dword [0x456894], 0xc41faac1
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
mov eax, dword [0x455edc]
sub eax, 0x4919aeeb
mov dword [0x449864], eax
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
movsx eax, word [0x43e04c]
sub eax, 0x4ea93854
cmp eax, 0x48424842
jg 0x404874
mov eax, dword [0x452d3c]
sub eax, dword [0x4525f0]
mov dword [0x452d3c], eax
movzx eax, word [0x44022e]
xor edi, edi
and eax, 0x29c6bc70
mov word [0x44022e], ax
jmp 0x404890
mov ax, word [0x435abe]
movsx ecx, word [0x43e238]
cwde
sub ecx, eax
and ecx, 0xa43231c7
cmp ecx, 0xf52df985
jl 0x4048b8
and dword [0x4535c8], 0xa16844a5
cmp edi, esi
jg 0x404a64
add dword [0x45537c], 0x4e1825c6
cmp byte [ebp + 0x10], 0
je 0x404998
mov cl, byte [ebp + edi - 8]
cmp cl, 0x3d
jbe 0x404998
mov eax, dword [0x444c68]
sub eax, 0x7f632bc7
mov dword [0x4558b4], eax
dec dword [0x444c68]
cmp cl, 0x3e
mov ecx, ebx
jne 0x404939
movzx eax, word [0x436dea]
xor eax, 0x3f16e430
mov word [0x436dea], ax
lea eax, [ebp - 0x10]
push eax
call fcn.0041f650
inc dword [0x4546e0]
mov ecx, dword [0x4546e0]
mov eax, dword [0x449e68]
sub ecx, eax
and ecx, 0x4a156095
or dword [0x44d7cc], ecx
jmp 0x404968
xor dword [0x455d1c], 0x7670177a
lea eax, [ebp - 0x14]
push eax
call fcn.0041f650
mov ecx, dword [0x4543f4]
mov eax, dword [0x4552b0]
sar ecx, 5
or ecx, 0x9ea91b13
imul eax, ecx
mov dword [0x4552b0], eax
cmp dword [0x450ebc], 0xece8da9c
je 0x404a42
inc dword [0x444734]
mov eax, dword [0x444734]
or eax, 0x69d0a42e
xor eax, dword [0x4442e8]
mov dword [0x4442e8], eax
jmp 0x404a42
movsx eax, word [0x43afe4]
dec word [0x43afe4]
cmp eax, 0x10fa9e4
jl 0x4049f1
movsx eax, word [0x43849e]
xor eax, 0x81a811
cmp eax, 0x5fbd3ff5
jl 0x4049c8
inc dword [0x44b690]
jmp 0x404a1c
mov eax, dword [0x441008]
mov ecx, 0x147742f7
sub ecx, eax
movzx eax, word [0x439d62]
xor ecx, 0xa1e31a0b
and eax, ecx
mov word [0x439d62], ax
dec dword [0x441008]
jmp 0x404a1c
movsx eax, word [0x43a5cc]
movsx ecx, word [0x43bd2a]
add eax, 0x757b8fe0
and ecx, eax
movzx eax, word [0x43adb8]
or eax, ecx
mov word [0x43adb8], ax
inc word [0x43bd2a]
mov ecx, dword [ebp - 0xc]
movzx eax, byte [ebp + edi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.00422ff0
movzx eax, word [0x4354aa]
and eax, 0x67b1f2d9
mov word [0x4354aa], ax
movzx eax, word [0x436adc]
add eax, 0x249f3e93
inc edi
mov word [0x436adc], ax
mov dword [0x45152c], 0xf71b578c
jmp 0x404890
mov eax, dword [0x44d6d0]
inc dword [0x44d6d0]
sub eax, 0x66129dd1
cmp eax, 0x86e492fe
jl 0x404a85
add dword [0x455940], 0x8b7cef47
cmp esi, 3
jge 0x404ba6
mov edi, 3
sub edi, esi
jmp 0x404aa0
mov dword [0x445ce0], 0xf7fdffef
mov eax, dword [0x448d98]
not eax
cmp eax, 0x47e6606a
je 0x404ace
mov eax, dword [0x449ae8]
and eax, dword [0x447a30]
mov dword [0x449ae8], eax
dec dword [0x447a30]
cmp byte [ebp + 0x10], 0
je 0x404b4b
cmp dword [0x452f28], 0x90607aae
jne 0x404afb
inc dword [0x4461c0]
mov eax, dword [0x4461c0]
xor eax, 0x10576dc6
add eax, dword [0x4507c8]
mov dword [0x4507c8], eax
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.0041f650
movsx eax, word [0x4359d8]
not eax
xor eax, 0xd885d416
cmp eax, 0x4321fb08
jge 0x404b2c
imul eax, dword [0x44e230], 0x34f0017
mov dword [0x44e230], eax
jmp 0x404b8a
mov ax, word [0x43ec62]
movzx ecx, word [0x43e1fa]
cwde
sub ecx, eax
sub ecx, 0x79ab4000
mov word [0x43e1fa], cx
jmp 0x404b8a
mov eax, dword [0x4518f8]
xor eax, 0x9a758fa
cmp eax, 0xffbfbfe3
je 0x404b77
mov ecx, dword [0x447f64]
mov eax, dword [0x44a880]
not ecx
and ecx, 0xe83b8c1a
imul eax, ecx
mov dword [0x44a880], eax
push 0x3d
mov ecx, ebx
call fcn.00422ff0
xor dword [0x44db94], 0xc31f63e4
mov eax, dword [0x44f204]
xor eax, dword [0x4418a0]
xor eax, 0x71b707b9
mov dword [0x4418a0], eax
dec edi
jne 0x404aa0
mov ecx, dword [0x453884]
mov eax, dword [0x454a28]
shl ecx, 9
sub ecx, eax
lea eax, [ecx - 0x3c6ed746]
and dword [0x443684], eax
inc dword [0x454a28]
push dword [ebp - 0xc]
and dword [0x4557a8], 0x4e3fcf4b
push 0x41
call fcn.00420d00
movzx eax, word [0x436100]
sub eax, 0x41531f56
mov word [0x436100], ax
lea eax, [ebp - 0x10]
push 4
push 0
push eax
call fcn.00428880
dec dword [0x450880]
mov eax, dword [0x450880]
xor dword [0x448dd4], eax
lea eax, [ebp - 0x14]
push 4
push 0
push eax
call fcn.00428880
and dword [0x456460], 0x2114c308
lea eax, [ebp - 0x18]
push 4
push 0
push eax
call fcn.00428880
mov eax, dword [0x450914]
add esp, 0x2c
mov ecx, dword [0x44b8fc]
add eax, 0xbe75bae1
imul ecx, eax
pop edi
pop esi
pop ebx
mov dword [0x44b8fc], ecx
mov esp, ebp
pop ebp
ret