Function at 0x40c330
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [0x4450c4]
mov eax, 0xcd6d014e
sub eax, ecx
xor eax, 0xf33acf3a
or dword [0x43c578], eax
and dword [0x44c610], 0x1668d6de
movzx edx, word [0x456628]
or edx, 0xceb04650
mov word [0x456628], dx
mov ax, word [0x453420]
mov cx, word [0x4566b0]
cwde
movsx edx, cx
add eax, 0x3ff2f32b
not edx
xor edx, eax
sub esp, 0x18
cmp edx, 0xa7aaf278
jne 0x40c399
mov eax, 0xffffbd77
mov word [0x457c40], ax
add dword [0x43839c], 0x98bb877c
push ebx
push esi
push edi
mov edi, 1
add dword [0x443c4c], edi
mov ecx, dword [0x443c4c]
mov edx, dword [0x43bea8]
imul ecx, edx
imul ecx, ecx, 0x44340e12
push 0x41
mov dword [0x4459b8], ecx
push 0x198d
xor ebx, ebx
call fcn.00409010
dec dword [0x448a28]
mov dword [ebp - 0xc], eax
mov eax, dword [0x448a28]
and eax, 0x5f742ae4
xor dword [0x44abb4], eax
push 4
push 0x174e
call fcn.00409010
and dword [0x442e84], 0xe930f8d9
mov esi, eax
lea eax, [ebp - 0x10]
push esi
push eax
call fcn.00405460
mov eax, dword [0x43c27c]
and eax, 0xc86f8d48
sub dword [0x43f310], eax
add dword [0x43c27c], edi
push 4
push 0x210f
call fcn.00409010
mov cx, word [0x4563f2]
mov edi, eax
movsx eax, cx
lea ecx, [eax + eax]
mov eax, dword [0x440048]
mov edx, dword [0x439e24]
and eax, ecx
add esp, 0x20
cmp edx, eax
je 0x40c474
mov eax, dword [0x43de50]
mov ecx, dword [0x4383e0]
add eax, 0xd9069bd0
add ecx, eax
mov dword [0x43de50], ecx
jmp 0x40c47e
add dword [0x446954], 0x80000026
push esi
push 4
call fcn.00403da0
mov dx, word [0x4587ee]
movsx ecx, dx
shl ecx, 4
mov eax, 0xc92966a4
lea edx, [ebp - 0x14]
sub eax, ecx
add dword [0x447354], eax
push edi
push edx
call fcn.00405460
add dword [0x437460], 0x5b36e7aa
push 4
push 0x2ef0
call fcn.00409010
mov esi, eax
mov eax, dword [0x43bd74]
imul eax, eax, 0x9ac38bf5
push edi
mov dword [0x43bd74], eax
push 4
call fcn.00403da0
mov eax, dword [0x44d124]
mov ecx, dword [0x442b38]
shl eax, 8
xor ecx, eax
mov eax, dword [0x4488f4]
mov edx, 1
add dword [0x4488f4], edx
add esp, 0x20
cmp eax, ecx
jge 0x40c555
mov cx, word [0x456710]
movsx ecx, cx
imul ecx, ecx, 0x4c55e04e
mov eax, 0xde907131
sub eax, ecx
mov ecx, dword [0x44c1b8]
sar ecx, 1
or edi, 0xffffffff
add word [0x456710], di
sub ecx, 0x36e2bc10
cmp ecx, eax
jl 0x40c56c
add dword [0x44afd4], edx
mov edx, dword [0x447e1c]
mov eax, dword [0x44afd4]
or edx, eax
or edx, 0xe2d091de
mov dword [0x447e1c], edx
jmp 0x40c56c
movzx ecx, word [0x459964]
or ecx, 0xc9e91309
mov word [0x459964], cx
or edi, 0xffffffff
lea edx, [ebp - 0x18]
push esi
push edx
call fcn.00405460
add dword [0x43e410], 0xade3640f
push esi
push 4
call fcn.00403da0
xor dword [0x441a98], 0x2eafe79b
add esp, 0x10
cmp dword [ebp + 0xc], ebx
je 0x40c95d
mov edi, edi
mov ax, word [0x454e78]
movsx ecx, ax
or ecx, 0x2228ed47
mov esi, 1
cmp ecx, 0x33ccc67b
jne 0x40c5fb
mov dx, word [0x455380]
mov ecx, dword [0x43a0a8]
add dword [0x43a0a8], esi
movsx eax, dx
shl eax, 5
or eax, 0x8f85dd30
or ecx, 0xa56fc69d
cmp eax, ecx
jge 0x40c5fb
add dword [0x437d44], edi
mov edx, dword [0x437d44]
mov eax, dword [0x43e09c]
add dword [0x43e09c], edi
add dword [0x44882c], edi
mov ecx, dword [0x44882c]
mov eax, 0xfe3bbc6e
sub eax, ecx
add dword [0x44bc48], eax
mov ecx, dword [0x444264]
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov byte [ebp + ebx - 4], dl
mov edx, dword [0x443a5c]
or ecx, edx
sub dword [ebp + 0xc], esi
or ecx, 0x94d469f6
mov dword [0x444264], ecx
add dword [0x443a5c], edi
mov ecx, dword [0x44d9f8]
imul ecx, ecx, 0xc4050040
mov dword [0x44d9f8], ecx
add word [0x4554c4], si
mov dx, word [0x458a4e]
movzx ecx, word [0x4554c4]
add eax, esi
mov dword [ebp + 8], eax
movsx eax, dx
add ebx, esi
lea edx, [ecx + eax - 0x425bd15b]
mov word [0x458a4e], dx
cmp ebx, 3
jne 0x40c949
add dword [0x447a1c], 0x7a16ece0
movzx eax, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
and dword [0x44e140], 0x1595fb9c
mov al, byte [ebp - 4]
mov cl, byte [ebp - 3]
and al, bl
shl al, 4
mov byte [ebp - 7], al
mov dword [0x43c8c4], 0x8e0b9f58
mov edx, dword [0x4431f8]
shr cl, 4
add al, cl
sub edx, 0x2506ea13
cmp edx, 0x55a8dafe
mov byte [ebp - 7], al
jg 0x40c6f2
add dword [0x43d514], edi
mov eax, dword [0x43f070]
mov ecx, dword [0x43d514]
or eax, ecx
mov dword [0x43f070], eax
movzx edx, byte [ebp - 3]
mov eax, dword [0x44a234]
mov ecx, dword [0x437abc]
and dl, 0xf
add dl, dl
add dl, dl
mov byte [ebp - 6], dl
movzx edx, byte [ebp - 2]
sub eax, ecx
mov dword [0x44a234], eax
shr dl, 6
add byte [ebp - 6], dl
or dword [0x44a72c], 0xb9a7e3a5
mov al, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
add dword [0x44293c], 0x56c8405c
add dword [0x43a428], edi
mov ecx, dword [0x43a428]
sub ecx, 0x4f536537
xor esi, esi
cmp ecx, 0xee5c8ff8
jle 0x40c760
and dword [0x4489d8], 0xfe66bfe4
mov edi, edi
movzx edx, word [0x45222c]
or edx, 0xb86406b3
cmp byte [ebp + 0x10], 0
mov word [0x45222c], dx
je 0x40c813
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x40c813
add dword [0x43fdc4], 0x77eaae14
cmp al, 0x3e
jne 0x40c7ba
xor dword [0x446280], 0x8f2fb39
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.0042ff70
mov dword [0x4437ec], 0x3de56b1d
jmp 0x40c7f1
mov ecx, dword [0x4417fc]
imul ecx, ecx, 0xc4200221
mov dword [0x4417fc], ecx
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x14]
push edx
call fcn.0042ff70
mov eax, dword [0x43a1c8]
mov ecx, dword [0x4453c8]
add eax, 0x8a0d5e00
imul ecx, eax
mov dword [0x4453c8], ecx
mov ecx, dword [0x436e80]
mov dx, word [0x4557ee]
not ecx
movsx eax, dx
add ecx, 0x6af75b6b
and eax, ecx
add dword [0x4428a8], eax
jmp 0x40c889
mov eax, dword [0x440ecc]
not eax
imul eax, eax, 0x43492c8c
and eax, 0x888e10f4
cmp eax, 0x59d0fe89
jne 0x40c854
mov ecx, dword [0x4385f8]
sar ecx, 7
cmp ecx, 0x1cd1daf6
jle 0x40c854
mov edx, dword [0x443ad0]
mov eax, dword [0x43f484]
mov ecx, dword [0x44d754]
add dword [0x44d754], edi
movzx edx, byte [ebp + esi - 8]
mov eax, dword [ebp - 0xc]
movzx ecx, byte [edx + eax]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0041ca20
mov eax, dword [0x44b834]
movzx edx, word [0x45163c]
xor eax, 0x84fd8719
add edx, eax
mov word [0x45163c], dx
inc dword [0x44b834]
mov ax, word [0x458926]
add word [0x458926], di
movsx ecx, ax
cmp ecx, 0xea279fb4
jne 0x40c8b5
mov edx, dword [0x449598]
imul edx, edx, 0xbbc62016
mov dword [0x449598], edx
jmp 0x40c8ce
mov eax, dword [0x447e1c]
mov ecx, dword [0x43ceb4]
add eax, 0xb0e704c5
imul ecx, eax
mov dword [0x43ceb4], ecx
mov eax, dword [0x44c304]
xor eax, 0x4a004000
sar eax, 7
or eax, 0xc62a5e03
xor dword [0x438a0c], eax
inc esi
cmp esi, 4
jne 0x40c760
inc dword [0x439478]
mov eax, dword [0x442f98]
mov edx, dword [0x439478]
imul eax, eax, 0x99d0f25
add dword [0x442f98], edi
xor edx, eax
cmp edx, 0x5b5dd5e9
jle 0x40c92d
mov eax, dword [0x4438f4]
not eax
add eax, 0x4e12bd5b
or eax, 0x39f83063
mov dword [0x447c18], eax
mov ecx, dword [0x4462e0]
mov edx, 0x1d2a6ca3
sub edx, ecx
xor ebx, ebx
and edx, 0x93ec54e0
mov word [0x45312e], dx
or dword [0x448bbc], 0xb1bf8ac2
cmp dword [ebp + 0xc], 0
jne 0x40c5a0
mov eax, dword [0x443864]
or eax, 0x7a89b3a0
sar eax, 3
cmp eax, 0x90ecd254
je 0x40c97d
add dword [0x44a564], 0xd9a8f06e
jmp 0x40c9d2
mov cx, word [0x45649e]
mov dx, word [0x44f5f6]
movsx eax, dx
mov edx, dword [0x44acec]
movsx ecx, cx
imul eax, ecx
mov ecx, 1
add dword [0x44acec], ecx
add word [0x44f5f6], cx
xor edx, 0x618458d0
cmp eax, edx
jle 0x40c9d2
add dword [0x44c374], edi
mov eax, dword [0x44c374]
imul eax, eax, 0xda783f49
and eax, 0x77462c09
or dword [0x44b8c4], eax
test ebx, ebx
je 0x40ceb9
mov ax, word [0x44f9ba]
movzx ecx, word [0x454730]
cwde
or eax, 0x68c10c82
sub ecx, eax
mov word [0x454730], cx
add word [0x44f9ba], di
cmp ebx, 3
mov edx, 0x5f67
mov word [0x4587a8], dx
jge 0x40cab7
mov esi, 3
sub esi, ebx
push esi
lea eax, [ebp + ebx - 4]
push 0
push eax
call fcn.00410a90
add esp, 0xc
mov edx, 0x4299bd9b
mov ecx, 0x15247bc1
jmp 0x40ca40
mov eax, dword [0x444c4c]
inc dword [0x444c4c]
add eax, 0x72c12c6
or eax, 0xe5ca9458
cmp eax, 0x9531f561
je 0x40ca62
add dword [0x44457c], edx
mov dword [0x440d78], ecx
mov ax, word [0x45771a]
mov edi, dword [0x444de0]
dec word [0x45771a]
cwde
and eax, 0xbc74678c
add edi, 0x7c681dfb
cmp edi, eax
jg 0x40caaf
mov eax, dword [0x43b830]
imul eax, eax, 0x1c206e8d
and eax, 0x2d32bdb7
cmp eax, 0x6ea35e1f
je 0x40caaf
mov ax, word [0x458c20]
cwde
sub dword [0x43dbd4], eax
sub esi, 1
jne 0x40ca40
or edi, 0xffffffff
movzx ecx, word [0x45a106]
mov dl, byte [ebp - 4]
add ecx, 0x754e3c79
mov word [0x45a106], cx
mov eax, dword [0x44a688]
mov ecx, dword [0x4385f0]
shr dl, 2
mov byte [ebp - 8], dl
add dword [0x44a688], edi
add dword [0x4385f0], edi
sub ecx, eax
cmp ecx, 0xe68a2267
jl 0x40cb08
mov edx, dword [0x444560]
mov eax, dword [0x447000]
sub edx, eax
mov dword [0x444560], edx
mov dx, word [0x4587d6]
mov cl, byte [ebp - 4]
and cl, 3
shl cl, 4
mov byte [ebp - 7], cl
mov ecx, dword [0x44b23c]
movsx eax, dx
movzx edx, byte [ebp - 3]
add ecx, eax
mov word [0x4587d6], cx
mov eax, dword [0x444ec8]
sar eax, 4
shr dl, 4
add byte [ebp - 7], dl
movzx edx, byte [ebp - 2]
mov ecx, 0xfa653e99
sub ecx, eax
mov al, byte [ebp - 3]
and al, 0xf
add al, al
add al, al
mov byte [ebp - 6], al
mov dword [0x44a204], ecx
mov dword [0x44b868], 0xe1b90fb5
shr dl, 6
add al, dl
mov byte [ebp - 6], al
mov eax, dword [0x446b84]
sar eax, 7
or dword [0x4478e8], eax
movzx eax, byte [ebp - 2]
and al, 0x3f
mov byte [ebp - 5], al
xor dword [0x44b3c8], 0x143fd04b
mov ecx, dword [0x437fbc]
sar ecx, 6
or ecx, 0xb0ebe38f
xor esi, esi
mov edi, 0xe5316f4
mov dword [0x449bb0], ecx
mov dword [0x44bb00], edi
test ebx, ebx
jl 0x40cd89
lea esp, [esp]
cmp byte [ebp + 0x10], 0
mov edx, 0xffffd42a
mov word [0x454be6], dx
je 0x40ccca
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x40ccca
mov ecx, dword [0x443af8]
add ecx, 0xfa5929f5
or dword [0x43ab78], ecx
mov ecx, 1
add dword [0x443af8], ecx
cmp al, 0x3e
jne 0x40cc2d
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
mov dword [0x43eba8], 0x6d42d222
push eax
call fcn.0042ff70
mov ecx, dword [0x44c4e4]
imul ecx, ecx, 0x43ace06d
mov dword [0x44c4e4], ecx
jmp 0x40cc8a
mov eax, dword [0x4496c4]
mov edx, dword [0x44b418]
add dword [0x4496c4], ecx
dec dword [0x44b418]
and eax, 0x50d2d43c
cmp edx, eax
jne 0x40cc62
movzx eax, word [0x44ee8a]
imul eax, eax, 0x17197f33
mov word [0x44ee8a], ax
jmp 0x40cc6c
and dword [0x43cffc], 0x3d2fd4f0
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0042ff70
mov edx, dword [0x43ac30]
mov dword [0x441a30], edx
inc dword [0x43ac30]
mov eax, dword [0x447864]
imul eax, eax, 0x52b6049
mov ecx, 0xa9d719de
sub ecx, eax
cmp ecx, 0xae2c2ebb
jl 0x40cd29
mov edx, dword [0x44bf5c]
mov eax, dword [0x437f14]
imul edx, eax
cmp edx, 0x4a5a0401
jg 0x40cd29
mov dword [0x4459dc], 0xc7bf8ab8
jmp 0x40cd29
dec word [0x45423e]
mov cx, word [0x45423e]
movzx eax, byte [ebp + esi - 8]
movsx edx, cx
mov ecx, dword [ebp - 0xc]
add edx, 0x39637f66
mov dword [0x449eec], edx
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.0041ca20
mov eax, dword [0x449674]
sar eax, 7
sub eax, 0x38dbd47d
cmp eax, 0xd8ab2bdd
jg 0x40cd29
inc dword [0x43a350]
mov eax, dword [0x43a350]
mov ecx, dword [0x442100]
and eax, ecx
add dword [0x439c20], eax
mov ecx, dword [0x44b09c]
mov eax, dword [0x44d044]
mov edx, dword [0x4398cc]
imul edx, edx, 0x38ffcb
sar ecx, 8
not eax
and eax, ecx
cmp edx, eax
jg 0x40cd5b
mov eax, dword [0x43f5c8]
or eax, 0xd609354e
add dword [0x43f37c], eax
dec dword [0x43a060]
mov eax, dword [0x43a060]
mov ecx, dword [0x440458]
or eax, 0x71bd3eda
imul ecx, eax
inc esi
cmp esi, ebx
mov dword [0x440458], ecx
mov dword [0x44bb00], edi
jle 0x40cbc0
mov edx, dword [0x4454cc]
imul edx, edx, 0x275b90ea
mov eax, 0xdebba8fb
sub eax, edx
and dword [0x43a008], eax
inc dword [0x4454cc]
cmp ebx, 3
jge 0x40ce7f
mov esi, 3
sub esi, ebx
mov ebx, 0x2e760010
mov edi, 0x2040416e
mov ax, word [0x4509e2]
cwde
xor eax, 0xd00f294d
or dword [0x44739c], eax
inc word [0x4509e2]
add dword [0x44b36c], ebx
cmp byte [ebp + 0x10], 0
je 0x40ce4a
mov ecx, dword [0x4478c4]
not ecx
add ecx, 0x77eb8688
cmp ecx, 0xe31e0519
jle 0x40ce07
add dword [0x43f764], 0x1d478937
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x18]
push edx
call fcn.0042ff70
mov ax, word [0x4597a0]
mov ecx, dword [0x448a60]
not ecx
imul ecx, ecx, 0x1e3f4d39
cwde
and eax, 0x40ca5822
or eax, 0x3f1427c1
cmp eax, ecx
jne 0x40ce6c
mov edx, dword [0x4383fc]
imul edx, edx, 0xf0bce1f
mov dword [0x4383fc], edx
jmp 0x40ce6c
xor dword [0x449e98], edi
mov ecx, dword [ebp + 0x14]
push 0x3d
call fcn.0041ca20
movzx eax, word [0x45723c]
add eax, 0x57f8dfe8
mov word [0x45723c], ax
xor dword [0x445f18], 0x32fca44a
sub esi, 1
jne 0x40cdc2
mov ecx, dword [0x439008]
inc dword [0x439008]
and ecx, 0xc66eed49
cmp ecx, 0xa8db8afe
jg 0x40ceb9
dec dword [0x437834]
mov eax, dword [0x43d8c4]
mov edx, dword [0x437834]
imul eax, edx
imul eax, eax, 0x8581efa
sub dword [0x43f3f4], eax
mov eax, dword [0x43e47c]
or eax, 0x2f7cffe8
sar eax, 1
add dword [0x442764], eax
mov eax, dword [ebp - 0xc]
push eax
push 0x41
call fcn.00403da0
movzx ecx, word [0x453536]
imul ecx, ecx, 0x56cff7f4
push 4
lea edx, [ebp - 0x10]
push 0
mov word [0x453536], cx
push edx
call fcn.00410a90
mov eax, dword [0x444738]
add esp, 0x14
pop edi
and eax, 0xdf81032f
pop esi
pop ebx
cmp eax, 0x4afb8533
je 0x40cf18
add dword [0x441748], 0x9a089ae3
push 4
lea ecx, [ebp - 0x14]
push 0
push ecx
call fcn.00410a90
add dword [0x43a478], 0xf5ceb51c
push 4
lea edx, [ebp - 0x18]
push 0
push edx
call fcn.00410a90
mov ax, word [0x455456]
cwde
add eax, 0xf1011b1f
add esp, 0x18
and dword [0x44af2c], eax
mov esp, ebp
pop ebp
ret