Function at 0x407fe0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
add word [0x442f34], 0xe03d
mov eax, 0x59e73308
xor eax, dword [0x4548dc]
mov dword [0x44fcdc], eax
mov word [0x444bc8], 0xaab5
add dword [0x4552d0], 0x423a4c75
mov eax, 0xa1fb6f29
and eax, dword [0x453630]
mov ecx, 0xb7471967
sub ecx, dword [0x4487fc]
cmp eax, ecx
jne 0x408051
mov eax, dword [0x448504]
xor eax, 0x85ba50b3
movsx ecx, word [0x445aa0]
lea edx, [ecx - 1]
mov word [0x445aa0], dx
or eax, ecx
mov dword [0x447038], eax
jmp 0x40808a
mov eax, dword [0x44901c]
movzx ecx, word [0x44184e]
dec ecx
mov word [0x44184e], cx
movsx ecx, cx
or ecx, eax
cmp ecx, 0xb0a43060
jg 0x408079
mov eax, dword [0x44b140]
jmp 0x40808a
mov eax, dword [0x44e4b0]
sar eax, 1
add eax, 0x471bd029
mov dword [0x451bc8], eax
mov ebx, dword [esp + 0x30]
mov eax, dword [0x453110]
sar eax, 6
add dword [0x44d648], eax
push 0x41
push 0x12f
call fcn.004033fd
add esp, 8
mov esi, eax
mov ax, word [0x44645c]
or word [0x43f8e0], ax
push 4
push 0x298f
call fcn.004033fd
add esp, 8
mov edi, eax
mov eax, dword [0x44fc2c]
mov ecx, dword [0x453374]
lea edx, [ecx + 1]
mov dword [0x453374], edx
and eax, ecx
xor dword [0x455260], eax
lea eax, [esp + 0xd]
push edi
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov ax, word [0x445a3a]
push 4
push 0x27e4
call fcn.004033fd
add esp, 8
mov ebp, eax
mov eax, dword [0x446d78]
add dword [0x4479f4], 0x80f1cd57
push edi
push 4
call fcn.004065a6
add esp, 8
add word [0x4440f8], 0xc091
lea eax, [esp + 9]
push ebp
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x448558]
inc eax
mov dword [0x448558], eax
imul eax, dword [0x44d580]
imul eax, eax, 0x1498bc00
cmp eax, 0x2183d22b
jl 0x408166
or dword [0x44b94c], 0x30c8c60
push 4
push 0x274c
call fcn.004033fd
add esp, 8
mov edi, eax
add dword [0x4508a0], 0x10052280
push ebp
push 4
call fcn.004065a6
add esp, 8
mov word [0x442236], 0xc32b
lea eax, [esp + 5]
push edi
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x45017c]
sar eax, 0xa
and eax, 0x5eacbcbe
sub dword [0x44b950], eax
push edi
push 4
call fcn.004065a6
add esp, 8
movzx eax, word [0x4443a4]
mov ecx, eax
inc ecx
mov word [0x4443a4], cx
sub word [0x446912], ax
xor edi, edi
mov ecx, ebx
test ecx, ecx
je 0x40858c
mov ebp, dword [esp + 0x2c]
xor edi, edi
mov ebx, 0x37c6a000
add word [0x445f8c], 0x23d2
or dword [0x4523a4], 0x487f54b9
mov al, byte [ebp]
mov byte [esp + edi + 0x15], al
imul eax, dword [0x44cc18], 0x8ff3a778
mov dword [0x44cc18], eax
inc edi
mov dword [0x44efa8], 0xb329f919
mov eax, dword [0x44d190]
imul eax, dword [0x44d3c8], 0xc45a2eb1
cmp eax, 0x8146e9e4
je 0x408240
dec dword [0x44a6f4]
dec ecx
cmp edi, 3
mov edx, ecx
jne 0x408564
mov dword [esp], edx
and word [0x444d56], 0x3a6f
mov al, byte [esp + 0x15]
shr al, 2
mov byte [esp + 0x11], al
dec word [0x44620a]
mov eax, dword [0x44b904]
not eax
mov ecx, dword [0x446c44]
not ecx
imul ecx, eax
imul eax, ecx, 0x36325249
movzx ecx, word [0x4431c0]
and ecx, eax
mov word [0x4431c0], cx
mov al, byte [esp + 0x15]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
movzx eax, word [0x443b5e]
inc eax
mov word [0x443b5e], ax
cwde
add eax, 0xa6cc37c8
or eax, 0x7eac99cd
sub dword [0x449844], eax
mov al, byte [esp + 0x16]
mov cl, al
shr cl, 4
add byte [esp + 0x12], cl
mov ecx, dword [0x44d554]
mov edx, 0x108d131
or ecx, edx
cmp ecx, 0xcf00666a
jl 0x408303
mov eax, dword [0x452f44]
imul eax, dword [0x44dc08]
shl eax, 7
and eax, dword [0x44e5f0]
and eax, 0xb772cc00
mov dword [0x44e5f0], eax
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
mov eax, dword [0x44ba08]
inc eax
mov dword [0x44ba08], eax
movzx ecx, word [0x442cf8]
sub ecx, eax
mov word [0x442cf8], cx
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
mov eax, dword [0x4554b0]
mov ecx, dword [0x44b0f0]
shl ecx, 7
and ecx, 0x3c333080
or ecx, eax
mov eax, dword [0x449904]
lea edx, [eax + 1]
mov dword [0x449904], edx
cmp ecx, eax
jge 0x408366
add dword [0x44b3f8], 0xd98cfbe1
jmp 0x408397
imul eax, dword [0x44bd18], 0x5fac0100
cmp eax, 0xf4ff2e98
jg 0x408392
mov eax, dword [0x4546fc]
lea ecx, [eax - 1]
mov dword [0x4546fc], ecx
add eax, 0xaa6b73f9
and dword [0x452074], eax
jmp 0x408397
mov eax, dword [0x450ee4]
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
add dword [0x44a4a0], 0xc48d8e9d
add dword [0x452a64], 0xcfffbefc
xor edi, edi
mov eax, dword [0x45491c]
or eax, dword [0x44ca78]
or eax, 0x33b2ac
mov dword [0x44ca78], eax
cmp byte [esp + 0x34], 0
je 0x408418
movzx eax, byte [esp + edi + 0x11]
cmp eax, 0x3e
jb 0x408418
mov eax, dword [0x4523bc]
shl eax, 9
xor eax, 0x2280402c
cmp eax, 0x48dcb76e
jl 0x408450
mov eax, dword [0x452518]
movzx ecx, word [0x440778]
lea edx, [ecx - 1]
mov word [0x440778], dx
lea eax, [ecx + eax - 1]
and eax, 0x6bd8
mov word [0x440eb6], ax
jmp 0x40845a
inc word [0x4468c6]
mov eax, dword [0x446a98]
xor eax, ebx
add dword [0x44b3e8], eax
movzx eax, byte [esp + edi + 0x11]
movsx eax, byte [esi + eax]
mov ecx, dword [esp + 0x38]
push eax
push 1
call fcn.00432100
add dword [0x44c8d4], 0x9f574aa3
jmp 0x408503
or dword [0x44c0d0], 0x80211600
movzx eax, byte [esp + edi + 0x11]
cmp eax, 0x3e
jne 0x4084a8
movsx eax, word [0x444cbe]
mov ecx, dword [0x4554e4]
lea edx, [ecx - 1]
mov dword [0x4554e4], edx
or ecx, 0x57ac619f
cmp eax, ecx
jle 0x40848e
add dword [0x44bcbc], 0x7e9643bc
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0xd]
push eax
call fcn.0041f3c4
xor dword [0x44b348], 0x3c17dd1f
jmp 0x4084f9
mov eax, dword [0x451114]
shr eax, 0xa
movzx ecx, word [0x4417ac]
or ecx, eax
mov word [0x4417ac], cx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 9]
push eax
call fcn.0041f3c4
mov eax, dword [0x44e4b8]
shl eax, 7
xor eax, 0xbd2ffb50
cmp eax, 0x2001806e
jl 0x4084f9
mov eax, dword [0x452ae4]
mov ecx, 0x3395948c
and eax, ecx
xor eax, 0xa351cde6
and dword [0x452b84], eax
add dword [0x44e224], 0x7144f761
xor dword [0x446d14], 0xa5058bc0
inc edi
mov eax, dword [0x44f3c8]
lea ecx, [eax + 1]
mov dword [0x44f3c8], ecx
add eax, 0x87576a14
sub eax, dword [0x448a90]
mov dword [0x4541cc], eax
cmp edi, 4
jne 0x4083b7
add dword [0x4519f0], 0xf3b964f6
mov eax, dword [0x44ae70]
lea ecx, [eax - 1]
mov dword [0x44ae70], ecx
mov ecx, dword [0x450dc0]
lea eax, [eax + ecx - 0x1402fd4b]
mov dword [0x450dc0], eax
xor edi, edi
mov edx, dword [esp]
inc ebp
mov eax, dword [0x4526c8]
shr eax, 2
and eax, 0x9ba4
movzx ecx, word [0x440312]
or ecx, eax
mov word [0x440312], cx
test edx, edx
mov ecx, edx
jne 0x4081f0
mov eax, dword [0x44cbb4]
lea ecx, [eax - 1]
mov dword [0x44cbb4], ecx
cmp eax, 0x31829637
jg 0x4085ab
add dword [0x44c9a4], 0x1099d08c
test edi, edi
lea ebp, [esp + 5]
je 0x40896e
mov eax, dword [0x454f0c]
not eax
imul eax, dword [0x454ea4]
imul eax, eax, 0x5fcd196e
mov dword [0x454ea4], eax
mov eax, 0x2d9d475
add eax, dword [0x453758]
or eax, 0xf666fba3
xor dword [0x44eb30], eax
cmp edi, 2
jg 0x40862f
mov eax, edi
and dword [0x449e8c], 0xdf4df9ff
mov byte [esp + eax + 0x15], 0
imul ecx, dword [0x44b4f4], 0x8e0
mov dword [0x44b4f4], ecx
inc eax
imul ecx, dword [0x448048], 0xaddc7ee0
add ecx, 0x31fe5983
imul ecx, dword [0x451efc]
mov dword [0x451efc], ecx
cmp eax, 3
jne 0x4085ed
add dword [0x44942c], 0xb1d19bc4
mov al, byte [esp + 0x15]
mov cl, al
shr cl, 2
mov byte [esp + 0x11], cl
mov ecx, dword [0x45179c]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
or dword [0x44e180], 0xff7bfd2f
mov al, byte [esp + 0x16]
shr al, 4
add byte [esp + 0x12], al
mov eax, dword [0x4498e8]
and dword [0x449798], 0x6c16131c
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
mov eax, dword [0x453c0c]
lea ecx, [eax - 1]
mov dword [0x453c0c], ecx
movsx ecx, word [0x441822]
or ecx, eax
cmp ecx, 0x754e2b08
je 0x4086ae
add word [0x44077a], 0x5c9f
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
imul eax, dword [0x44c778], 0x47f4d678
mov dword [0x44c778], eax
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
add word [0x442c14], 0x1d63
add dword [0x44a47c], 0xc9720989
movsx eax, word [0x444c4c]
sar eax, 2
add eax, 0xe1fcd17c
or dword [0x44b8e8], eax
test edi, edi
js 0x408862
lea ebx, [edi + 1]
lea ebp, [esp + 0x11]
movsx eax, word [0x4440c4]
add eax, 0xf9da2202
and eax, 0xcb70a6fc
sub dword [0x44bce0], eax
cmp byte [esp + 0x34], 0
je 0x408799
movzx eax, byte [ebp]
cmp eax, 0x3e
jb 0x408799
imul eax, dword [0x453e44], 0x79d96bac
mov dword [0x453e44], eax
movzx eax, byte [ebp]
cmp eax, 0x3e
jne 0x4087d2
mov dword [0x44ccf4], 0x9602c207
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0xd]
push eax
call fcn.0041f3c4
movsx eax, word [0x44120a]
lea ecx, [eax + 1]
mov word [0x44120a], cx
or eax, 0xb04517c
mov ecx, dword [0x45089c]
lea edx, [ecx - 1]
mov dword [0x45089c], edx
cmp eax, ecx
jge 0x408802
or dword [0x44e8c8], 0x5bc52b67
jmp 0x408802
add dword [0x449668], 0x62c797f1
movzx eax, byte [ebp]
movsx eax, byte [esi + eax]
mov ecx, dword [esp + 0x38]
push eax
push 1
call fcn.00432100
mov eax, dword [0x44cb58]
lea ecx, [eax + 1]
mov dword [0x44cb58], ecx
or eax, 0x85a2
mov word [0x441ffc], ax
jmp 0x40880c
add dword [0x447230], 0xc7f55f2f
mov ecx, dword [esp + 0x38]
lea eax, [esp + 9]
push eax
call fcn.0041f3c4
mov eax, dword [0x4540e4]
dec eax
mov dword [0x4540e4], eax
imul eax, dword [0x44c974]
and dword [0x44ebb0], eax
xor dword [0x44a960], 0xb6e64d64
movsx eax, word [0x443708]
mov ecx, dword [0x44fbc8]
lea eax, [eax + ecx - 0x2725dc8a]
mov dword [0x44fbc8], eax
mov eax, dword [0x452504]
lea ecx, [eax - 1]
mov dword [0x452504], ecx
cmp eax, 0x61c6ca80
je 0x408845
mov ax, word [0x444740]
mov eax, dword [0x44dc18]
movsx eax, word [0x444c4c]
sar eax, 2
add eax, 0xe1fcd17c
or dword [0x44b8e8], eax
inc ebp
dec ebx
jne 0x408709
mov eax, dword [0x4555fc]
or dword [0x452cf0], eax
cmp edi, 2
lea ebp, [esp + 5]
jg 0x408964
mov ebx, 3
sub ebx, edi
add dword [0x44e118], 0x68a85a37
movsx eax, word [0x4449b4]
or dword [0x45450c], eax
cmp byte [esp + 0x34], 0
je 0x4088c4
dec word [0x44600e]
mov word [0x442a1c], 0x55a1
mov ecx, dword [esp + 0x38]
push ebp
call fcn.0041f3c4
add word [0x441b64], 0x60f
jmp 0x408903
mov eax, dword [0x44eb78]
lea ecx, [eax + 1]
mov dword [0x44eb78], ecx
mov ecx, 0xd306c0e5
sub ecx, eax
movzx eax, word [0x440a3a]
and eax, ecx
and eax, 0xac72
mov word [0x440a3a], ax
mov ecx, dword [esp + 0x38]
push 0x3d
push 1
call fcn.00432100
mov word [0x442800], 0xca49
mov eax, dword [0x44a078]
shl eax, 0xa
mov ecx, 0x493cd3fb
sub ecx, eax
movsx eax, word [0x440550]
mov edx, 0x6a88738a
sub edx, eax
cmp ecx, edx
jle 0x408942
movsx eax, word [0x441fb0]
and eax, 0xaab643ea
cmp eax, 0x83cb42e
jl 0x408953
mov word [0x44135c], 0x37a7
jmp 0x40895d
imul eax, dword [0x453904], 0xfef8e36f
mov dword [0x453904], eax
jmp 0x40895d
xor dword [0x4545a0], 0x880b274c
dec ebx
jne 0x408881
and dword [0x44d078], 0x8f0f0f08
mov word [0x44185e], 0x1dbc
push esi
push 0x41
call fcn.004065a6
add esp, 8
mov dword [0x450460], 0x2200000
push 4
lea eax, [esp + 0x11]
push eax
call fcn.00407f6b
add esp, 8
mov eax, 0x11140000
and eax, dword [0x4556b4]
sub dword [0x448320], eax
push 4
lea eax, [esp + 0xd]
push eax
call fcn.00407f6b
add esp, 8
mov eax, dword [0x450460]
cmp eax, 0x5dc87933
jg 0x4089d6
imul eax, dword [0x44d564], 0x6fa96db5
mov dword [0x44d564], eax
push 4
push ebp
call fcn.00407f6b
add esp, 8
or dword [0x4472d4], 0x601d79e5
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret