Function at 0x4053a0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
dec dword [0x44c830]
mov eax, dword [0x44c830]
mov ecx, dword [0x4417f4]
or ecx, eax
movzx eax, word [0x44fa5e]
add eax, ecx
mov word [0x44fa5e], ax
dec dword [0x4417f4]
add dword [0x4447c8], 0x239e812e
mov dword [0x44cc1c], 0x4929b3d
imul eax, dword [0x4377d0], 0xaca652c
mov dword [0x4377d0], eax
xor eax, eax
cmp dword [0x43ddb8], 0x53b93be
mov dword [ebp - 0xc], eax
je 0x405416
imul eax, dword [0x43e79c], 0x2fa653f1
and eax, 0x48416c12
mov dword [0x43c2dc], eax
mov ax, word [0x45a46c]
mov ecx, dword [0x4375c4]
cwde
xor ecx, eax
cmp ecx, 0x9a50e454
jle 0x405439
xor dword [0x44ed00], 0xbfd4d1bf
jmp 0x405461
mov ecx, dword [0x44cccc]
mov eax, dword [0x43b6c8]
dec dword [0x43b6c8]
shl ecx, 4
sub ecx, eax
cmp ecx, 0x351154d3
jl 0x405461
add dword [0x448c14], 0x801089
push ebx
push esi
push edi
push 0x41
push 0x36d3
call fcn.00423310
add dword [0x446610], 0xd97f8ed0
push 4
push 0x3c8c
mov dword [ebp - 0x10], eax
call fcn.00423310
add dword [0x44b58c], 0x22cfaaa6
mov esi, eax
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.004019e0
mov ecx, dword [0x43708c]
movsx edx, word [0x456572]
add ecx, 0xe4fdcbc5
or edx, ecx
push 4
mov dword [0x444718], edx
push 0x9e
call fcn.00423310
push esi
mov dword [0x4470d0], 0xe0b24a9f
mov edi, eax
push 4
call fcn.0041cb10
and dword [0x444f40], 0xef2effdb
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.004019e0
and dword [0x436fe8], 0x4ddeaf4d
push 4
push 0x3056
call fcn.00423310
xor dword [0x440518], 0x2f83b1e0
mov esi, eax
push edi
push 4
call fcn.0041cb10
movzx ecx, word [0x451034]
lea eax, [ebp - 0x1c]
add esp, 0x40
xor ecx, 0xae8b5cd2
mov word [0x451034], cx
push esi
push eax
call fcn.004019e0
add esp, 8
cmp dword [0x44c8d4], 0x3d5fdae7
je 0x405576
mov eax, dword [0x444800]
dec dword [0x444800]
sub eax, 0x55cd4b11
xor eax, 0x3291552a
cmp eax, 0x9bc18c7f
jg 0x405576
mov ax, word [0x45b24e]
mov eax, dword [0x447c14]
inc word [0x45b24e]
push esi
push 4
call fcn.0041cb10
mov eax, dword [0x43b184]
add esp, 8
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
sar eax, 6
xor eax, 0xf09c2df8
add dword [0x4360c8], eax
test edi, edi
je 0x405992
mov ecx, dword [ebp + 8]
xor edx, edx
jmp 0x4055b0
movzx eax, word [0x45bf64]
dec edi
imul eax, eax, 0x77e045c2
mov dword [ebp + 0xc], edi
mov word [0x45bf64], ax
imul eax, dword [0x438238], 0x28236dd9
mov dword [0x438238], eax
mov al, byte [ecx]
inc ecx
mov byte [ebp + edx - 4], al
inc edx
movzx eax, word [0x44fb72]
add eax, 0x5eebe220
mov dword [ebp + 8], ecx
mov word [0x44fb72], ax
or dword [0x446e44], 0x44240302
mov eax, dword [0x44a8a4]
not eax
and eax, 0x2d137ec1
xor eax, 0xbf2a305b
or dword [0x44df00], eax
cmp edx, 3
jne 0x405965
mov eax, dword [0x445198]
movsx ecx, word [0x4517e8]
inc word [0x4517e8]
shl eax, 3
or ecx, eax
cmp ecx, 0x57a7c5b8
jle 0x40564c
imul eax, dword [0x44d040], 0xb7cb20e8
mov dword [0x44d040], eax
movzx eax, byte [ebp - 4]
movsx ecx, word [0x458a2a]
shr al, 2
add ecx, 0xffd9017c
mov byte [ebp - 8], al
mov eax, dword [0x440754]
add eax, ecx
xor dword [0x44c4cc], eax
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
cmp dword [0x43d8fc], 0x4f4b5db7
mov byte [ebp - 7], al
je 0x405692
add dword [0x44e420], 0x18f24a25
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
xor dword [0x438980], 0xbdaf9f08
movzx eax, byte [ebp - 3]
and al, 0xf
mov edi, dword [ebp - 0x10]
shl al, 2
mov byte [ebp - 6], al
movzx eax, word [0x451b1c]
sub eax, 0x6c78f2dc
mov word [0x451b1c], ax
movzx eax, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
imul eax, dword [0x43e984], 0x14a88aa2
mov dword [0x43e984], eax
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
mov eax, 0x3215
xor dword [0x441a30], 0xa871722e
xor esi, esi
mov word [0x45109c], ax
or dword [0x438f10], 0x2b736b03
cmp byte [ebp + 0x10], 0
je 0x405844
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x405844
inc dword [0x442490]
mov eax, dword [0x442490]
add eax, 0xc6986cb7
and eax, 0xda87b028
cmp eax, 0xf7711d51
jge 0x40577e
movsx eax, word [0x456e56]
sar eax, 0xa
imul eax, eax, 0x193ed0ed
and eax, 0x83266aea
cmp eax, 0x1d6edbc9
jle 0x40576a
imul eax, dword [0x441990], 0xb0f677fe
mov dword [0x441990], eax
jmp 0x405794
movzx eax, word [0x453662]
xor eax, 0x7046dd83
mov word [0x453662], ax
jmp 0x405794
mov eax, dword [0x43e33c]
or eax, 0x3cba8754
cmp eax, 0x8b20ab74
jg 0x405794
mov eax, dword [0x448300]
cmp cl, 0x3e
jne 0x4057ba
xor dword [0x435184], 0x81c8841
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.0042bb10
mov dword [0x43ca7c], 0x361e5eaa
jmp 0x40580b
mov eax, dword [0x447b30]
inc dword [0x447b30]
cmp eax, 0x36900c49
jge 0x4057f5
mov eax, dword [0x442d30]
movsx ecx, word [0x451952]
sar eax, 5
sub ecx, eax
mov eax, dword [0x4384f8]
add eax, 0x49056877
add eax, ecx
mov dword [0x4384f8], eax
inc word [0x451952]
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.0042bb10
mov eax, 0x4042
mov word [0x453314], ax
movsx eax, word [0x45b5c8]
dec word [0x45b5c8]
imul eax, eax, 0xc3c27c13
cmp eax, 0xf7fc9566
jge 0x405883
imul eax, dword [0x440b40], 0xfbd5b542
cmp eax, 0xcaba72b8
jne 0x405883
mov ax, word [0x4543d8]
mov eax, dword [0x43ec98]
jmp 0x405883
movzx eax, word [0x452074]
mov ecx, ebx
and eax, 0xc11d0908
mov word [0x452074], ax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + edi]
push eax
call fcn.00402da0
inc dword [0x43601c]
mov eax, dword [0x43601c]
cmp eax, 0x4d460758
jl 0x405883
add dword [0x44ae44], 0xe218c6ac
inc dword [0x43e4c0]
inc esi
mov ecx, dword [0x43e4c0]
dec word [0x4540de]
mov ax, word [0x4540de]
cwde
sub ecx, eax
imul ecx, dword [0x447bf0]
mov dword [0x447bf0], ecx
inc dword [0x440b88]
mov eax, dword [0x440b88]
cmp eax, 0xec27e57b
jl 0x4058c9
or dword [0x44ed80], 0x481a9c38
cmp esi, 4
jne 0x405700
movsx ecx, word [0x45b0ea]
xor edx, edx
mov eax, dword [0x447284]
not ecx
mov edi, dword [ebp + 0xc]
add ecx, 0x3ddeb251
xor ecx, 0xb3511e3a
imul eax, ecx
mov dword [0x447284], eax
mov eax, dword [0x439044]
imul ecx, eax, 0x2cf07ba1
movsx eax, word [0x452d62]
not eax
add ecx, eax
mov eax, dword [0x44d6dc]
inc dword [0x439044]
dec dword [0x44d6dc]
cmp eax, ecx
jl 0x405962
imul ecx, dword [0x448798], 0x36bce97e
mov eax, dword [0x4498c8]
inc dword [0x4498c8]
xor eax, 0x1820110f
dec dword [0x448798]
or eax, 0x479ceee0
xor ecx, 0x459813c8
cmp ecx, eax
mov ecx, dword [ebp + 8]
jne 0x405965
add dword [0x4428f0], 0x40ba4d62
jmp 0x405965
mov ecx, dword [ebp + 8]
cmp dword [0x4461f4], 0xdbf6f3ef
jg 0x40597d
and dword [0x440fc8], 0x261d292e
jmp 0x405987
add dword [0x4402bc], 0x532abd64
test edi, edi
jne 0x4055b0
mov dword [ebp - 0xc], edx
mov eax, dword [0x4419b0]
inc dword [0x4419b0]
cmp eax, 0xc81121db
jl 0x4059c1
movsx ecx, word [0x45695e]
mov eax, dword [0x43e800]
sar ecx, 7
imul eax, ecx
imul eax, eax, 0xf5c95fc6
mov dword [0x43e800], eax
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x405e62
mov eax, dword [0x449298]
shl eax, 6
or eax, 0xac9511d4
add dword [0x43c288], eax
mov eax, dword [0x446118]
xor eax, dword [0x43b6dc]
mov dword [0x446118], eax
cmp edi, 3
jge 0x405a37
lea ecx, [ebp - 4]
mov esi, 3
sub esi, dword [ebp - 0xc]
add edi, ecx
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
add dword [0x43beb8], 0x85054a7b
or dword [0x43abc8], 0xed7ffbde
and dword [0x44b854], 0x2386ca2f
dec esi
jne 0x405a13
mov edi, dword [ebp - 0xc]
movzx eax, word [0x45ad08]
imul eax, eax, 0xb8a2ffdc
mov word [0x45ad08], ax
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
add dword [0x44da7c], 0x181321cf
movzx eax, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
inc dword [0x445470]
mov ecx, dword [0x445470]
mov eax, dword [0x44c90c]
sub ecx, eax
movzx eax, word [0x455f74]
and ecx, 0x6893ebdd
xor eax, ecx
mov word [0x455f74], ax
movzx eax, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
movzx eax, word [0x45718c]
sub eax, 0x7d966739
mov word [0x45718c], ax
movzx eax, byte [ebp - 3]
and al, 0xf
shl al, 2
cmp dword [0x43a824], 0xdfebe37f
mov byte [ebp - 6], al
jle 0x405ad6
movsx eax, word [0x458306]
shl eax, 0xa
add dword [0x449c4c], eax
mov al, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
dec dword [0x446d20]
mov ecx, dword [0x446d20]
movsx eax, word [0x451274]
cmp eax, ecx
jl 0x405b05
imul eax, dword [0x448524], 0xba8b6cf3
mov dword [0x448524], eax
mov al, byte [ebp - 2]
xor esi, esi
and al, 0x3f
mov byte [ebp - 5], al
and dword [0x4365f4], 0x238c1d34
add dword [0x43daf8], 0x84c7777a
mov ecx, dword [0x438ef4]
inc ecx
mov dword [0x438ef4], ecx
imul eax, dword [0x44687c], 0x4d07a312
sub eax, ecx
or dword [0x435f74], eax
test edi, edi
js 0x405d16
lea ebx, [ebx]
mov ax, word [0x451b28]
movsx ecx, ax
mov eax, dword [0x441718]
inc eax
add eax, ecx
movzx ecx, word [0x45884a]
xor ecx, eax
mov word [0x45884a], cx
dec dword [0x441718]
cmp byte [ebp + 0x10], 0
je 0x405c43
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x405c43
and dword [0x44935c], 0xba0f729e
cmp al, 0x3e
jne 0x405bf7
mov eax, dword [0x44d4c0]
mov ecx, dword [0x43f0a0]
xor eax, 0xc9919244
or ecx, eax
movzx eax, word [0x4567f2]
imul eax, ecx
mov ecx, ebx
mov word [0x4567f2], ax
lea eax, [ebp - 0x14]
push eax
call fcn.0042bb10
inc dword [0x43e660]
mov eax, dword [0x43e660]
or eax, 0xe50cb215
add eax, dword [0x44c1a8]
mov dword [0x44c1a8], eax
imul eax, dword [0x43e078], 0xdafe760e
mov dword [0x43e078], eax
jmp 0x405c92
imul eax, dword [0x44939c], 0x1a9336ec
mov ecx, ebx
mov dword [0x44939c], eax
lea eax, [ebp - 0x18]
push eax
call fcn.0042bb10
dec dword [0x44d8f8]
mov eax, dword [0x44d8f8]
add eax, 0x39d52851
or eax, 0x68f6e9ec
imul eax, dword [0x44af58]
mov dword [0x44af58], eax
imul eax, dword [0x43e078], 0xdafe760e
mov dword [0x43e078], eax
jmp 0x405c92
dec dword [0x441784]
mov eax, dword [0x441784]
mov ecx, dword [ebp - 0x10]
and eax, 0x66eeeff6
xor eax, 0x26183284
add eax, dword [0x43fb18]
mov dword [0x43fb18], eax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.00402da0
dec dword [0x44b1fc]
mov eax, dword [0x44b1fc]
add eax, 0x617420af
xor eax, dword [0x445260]
mov dword [0x445260], eax
imul eax, dword [0x435434], 0x62724325
inc dword [0x435434]
add eax, 0x66ecb982
cmp eax, 0xd43ca705
jne 0x405cbf
imul eax, dword [0x443e50], 0xf127c33c
mov dword [0x443e50], eax
jmp 0x405ce4
dec dword [0x44853c]
mov eax, dword [0x44853c]
mov ecx, dword [0x443e80]
and ecx, eax
xor ecx, 0xb7773fe5
sub dword [0x449458], ecx
dec dword [0x443e80]
add dword [0x44be6c], 0x39f4aaeb
inc esi
mov ecx, dword [0x438ef4]
inc ecx
mov dword [0x438ef4], ecx
imul eax, dword [0x44687c], 0x4d07a312
sub eax, ecx
or dword [0x435f74], eax
cmp esi, edi
jle 0x405b50
movsx eax, word [0x450d76]
cmp eax, 0xd859e862
jle 0x405d3f
mov eax, dword [0x43df94]
mov ecx, dword [0x44ead0]
and eax, 0xd6bc170c
add eax, eax
imul ecx, eax
mov dword [0x44ead0], ecx
cmp edi, 3
jge 0x405e40
mov esi, 3
sub esi, edi
mov edi, 0xffff8b61
jmp 0x405d60
mov word [0x45851c], di
movzx eax, word [0x457936]
xor eax, 0x67a13dd8
cmp byte [ebp + 0x10], 0
mov word [0x457936], ax
je 0x405dd8
mov eax, dword [0x443c00]
mov ecx, ebx
mov dword [0x438b7c], eax
lea eax, [ebp - 0x1c]
inc dword [0x443c00]
push eax
call fcn.0042bb10
movsx eax, word [0x459394]
cmp eax, 0xe888d746
jge 0x405e2f
dec dword [0x449c14]
mov eax, dword [0x449c14]
mov ecx, dword [0x442f54]
imul ecx, eax
imul eax, ecx, 0x6102f36a
movzx ecx, word [0x451370]
and ecx, eax
mov word [0x451370], cx
jmp 0x405e2f
mov eax, dword [0x44228c]
shl eax, 0xa
cmp eax, 0x125086
jle 0x405e12
inc dword [0x443898]
mov eax, dword [0x443898]
mov ecx, dword [0x445164]
shl ecx, 6
and ecx, eax
mov eax, dword [0x43f4c4]
or eax, ecx
cmp eax, 0x61200c84
jne 0x405e1c
mov eax, dword [0x435548]
jmp 0x405e1c
or dword [0x446a2c], 0x7389d927
push 0x3d
mov ecx, ebx
call fcn.00402da0
mov dword [0x436d14], 0xe041f2b5
xor dword [0x43b3e8], 0xe0c93c17
dec esi
jne 0x405d60
inc word [0x451bca]
mov ax, word [0x451bca]
cwde
cmp eax, 0x3b1a75de
jle 0x405e62
mov ax, word [0x45a2b8]
cwde
sub dword [0x4407b8], eax
mov eax, dword [0x44ab0c]
and eax, 0x3044120
pop edi
shl eax, 5
pop esi
pop ebx
cmp eax, 0xf57e9029
jge 0x405e83
or dword [0x44d1fc], 0xd120821
push dword [ebp - 0x10]
push 0x41
call fcn.0041cb10
add dword [0x43edb8], 0x80868ed8
lea eax, [ebp - 0x14]
push 4
push 0
push eax
call fcn.004038f0
dec dword [0x44133c]
add esp, 0x14
mov eax, dword [0x44133c]
imul eax, eax, 0x36aacf7
xor eax, 0xdcc82cb3
cmp eax, 0x1e7e69c0
jl 0x405ece
add dword [0x43819c], 0x803d3e1
push 4
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.004038f0
movsx eax, word [0x4592d2]
movzx ecx, word [0x45ab84]
add eax, 0x8bbf467e
or ecx, eax
lea eax, [ebp - 0x1c]
push 4
or ecx, 0x4ef57ced
push 0
mov word [0x45ab84], cx
push eax
call fcn.004038f0
add esp, 0x18
or dword [0x43fa4c], 0xfa276402
mov esp, ebp
pop ebp
ret