Function at 0x41c066
Capabilities:
Encode data using base64

Disassembly:
cmp dword [ebp - 0x5c], 0xffffff85
mov ecx, dword [ebp - 0xc]
leave
stc
mov word [ebp - 0x10c], bx
je 0x41b8e9
mov eax, 0x878ffc00
and ebx, eax
mov eax, 0xd800
cmp ebx, eax
je 0x8f45a2a0
push 2
pop esi
mov ebx, dword [ebp + 0x28]
mov dword [ebp - 0x28], edx
mov eax, dword [ebx + 0x20]
sub eax, dword [ebx + 0x10]
sar eax, 1
cmp dword [ebp - 0x5c], 0xffffff85
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
je 0x41b95b
test cl, al
je 0x41b95b
movzx ecx, word [ebp - 0x10c]
mov edx, 0x878ffc00
mov eax, ecx
and eax, edx
mov edx, 0xd800
cmp eax, edx
je 0x45b53d
mov eax, ecx
mov ecx, 0x4000080
cdq
idiv ecx
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
mov edx, dword [ebp - 8]
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 - 0x28b50c0d]
mov dword [esi], ebx
mov al, 0x85
jp 0x41b95a
pop dword [edi + 0x23d4458b]
aam 0x23
and eax, dword [ebp - 0xc]
push 0x1d
pop ecx
add eax, ecx
mov word [edx], ax
add edx, esi
xor eax, eax
mov dword [ebp - 8], edx
mov ecx, eax
test edi, edi
je 0x41b988
inc ebp
hlt
push dword [ebp + edx + 0x66]
mov eax, dword [ebp + ecx*2 - 0x10c]
mov ax, word [ebp + ecx*2 - 0x10c]
mov word [edx], ax
add edx, esi
inc ecx
cmp ecx, edi
jb 0x41b973
mov dword [ebp - 8], edx
mov ax, word [ebp - 0x10c]
push 0xd
pop ecx
cmp ax, cx
je 0x8f45b569
push 0xa
pop ecx
cmp ax, cx
je 0x45b569
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xfffffffe
je 0x334dc510
leave
xchg sp, ax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x74fb0084], eax
dec eax
inc ebp
lodsb al, byte [esi]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x16170094]
lea eax, [ebp - 0x70]
cmp edi, dword [ebp - 0xc]
jne 0x45b59e
movzx eax, word [edx - 2]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x68]
or eax, ecx
mov dword [ebp - 0x54], eax
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 8]
push 2
pop eax
add esi, eax
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x50]
movzx ebx, word [esi]
mov dword [ebp - 0x10], ebx
test ebx, ebx
je 0x441bc4d
cmp dword [ebp + 0x2c], 0
mov edi, dword [ebp + 0x28]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x10]
lea ecx, [eax + ecx*2]
je 0x862e37d8
lea eax, [ecx - 0xc8]
cmp edx, eax
ja 0x45b700
mov eax, dword [ebp - 0xc0]
cmp edx, eax
jb 0x4587e5
mov ecx, edx
sub ecx, eax
dec eax
inc ebp
sub al, 0xd1
stc
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x45b827
sar ebp, cl
add eax, dword [eax]
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [ecx], eax
test edx, edx
je 0x862e383f
mov ecx, dword [ebp - 0x161700b0]
cmp edx, ecx
jbe 0x41baa1
mov esi, dword [ebp - 8]
mov eax, esi
sub eax, edx
and eax, 0xfffffffe
push eax
push edx
push ecx
call 0x334e273c
leave
push ebp
fadd dword [ebx - 0x7274f33c]
push eax
invalid
mov edx, dword [ebp - 8]
mov dword [ebp - 0x161700c0], edx
test ebx, ebx
je 0x41bacb
push 0x5c
pop ecx
cmp ebx, ecx
je 0x41c097
cmp dword [ebp - 0x64], 0
jne 0x458804
cmp ebx, ecx
je 0x862dc0ac
mov edi, dword [ebp - 0x2c]
and edi, 8
mov dword [ebp - 0x30], edi
jne 0x458871
push 0x28
pop eax
cmp ebx, eax
je 0x8f51815a
push 0x2a
pop eax
cmp ebx, eax
je 0x862dc0be
push 0x2b
pop eax
cmp ebx, eax
je 0x862dc0be
push 0x3f
pop eax
cmp ebx, eax
je 0x862dc0be
push 0x7b
pop eax
cmp ebx, eax
je 0x4589b9
mov edx, dword [ebp - 0x16170088]
xor eax, eax
mov ecx, eax
dec eax
inc ebp
mov al, 0x85
ror byte [edi], cl
test dword [ebx - 0x870fc32], ebp
inc ebp
aam 0
inc eax
jg 0xcf214040
add eax, dword [eax]
mov edx, dword [ebp - 8]
push 0x3f
pop eax
cmp ebx, eax
ja 0xea2ab88b
je 0x4595f3
mov eax, ebx
xor ecx, ecx
sub eax, ecx
je 0x441bbe6
add ebx, 0x24
je 0x4595de
sub eax, 4
je 0x41bc79
sub eax, 1
je 0x41bbe6
sub eax, 1
je 0x41c0c9
sub eax, 1
je 0x458a60
sub eax, 3
jne 0x41b8c3
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xfffffffe
jne 0x41bb93
or ecx, 0xffffffff
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp + 0x28]
leave
xchg sp, ax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], eax
mov eax, dword [ebx + 0x20]
sub eax, dword [ebx + 0x10]
sar eax, 1
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
shr eax, 2
and eax, dword [ebp - 0xc]
mov dword [ebp - 0x68], ecx
or eax, 0xc
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x16170084], ecx
mov dword [ebp - 0x28], edx
mov word [edx], ax
push 2
pop eax
add edx, eax
mov dword [ebp - 8], edx
jmp 0x41b9e9
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x34]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x54]
mov dword [eax], ecx
mov eax, dword [ebp - 0x13c]
mov dword [eax], edx
dec eax
inc ebp
or byte [ecx + 0x2c458b30], cl
test eax, eax
je 0x41bc37
sub edx, dword [ebp - 0x161700c0]
mov ebx, 0x7fffffeb
mov ecx, dword [eax]
sub ebx, ecx
sar edx, 1
cmp ebx, edx
jl 0x45b827
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret
add esi, 2
push 0x2a
mov dword [ebp - 4], esi
pop eax
movzx edx, word [esi]
cmp dx, ax
je 0x458a68
mov eax, dword [ebp - 0x2c]
mov ecx, 0x4000085
mov dword [ebp - 0x24], ecx
xor edi, edi
mov ecx, dword [ebp + 0x28]
mov ebx, edi
mov dword [ebp - 0x3c], eax
push 0x3f
mov dword [ebp - 0x18], ebx
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
sar eax, 1
mov dword [ebp - 0x40], eax
pop eax
mov dword [ebp - 0x30], edi
cmp dx, ax
jne 0x41c259
add esi, 2
mov dword [ebp - 4], esi
push 0x3a
pop edx
movzx ebx, word [esi]
mov eax, ebx
cmp eax, edx
jbe 0x458ce9
mov edx, esi
mov edi, ebx
mov dword [ebp - 0x1c], edx
sub eax, 0x3c
je 0x4593c5
sub eax, 1
je 0x459287
sub eax, 1
je 0x4593bb
sub eax, 5
je 0x459311
push 0xd
pop ebx
sub eax, ebx
je 0x8f4592c8
push 2
pop ebx
sub eax, ebx
je 0x8f4592ab
push 0x2a
pop ebx
sub eax, ebx
je 0x8f459277
xor ecx, ecx
push 0x29
mov eax, ecx
mov dword [ebp - 0x30], ecx
pop ebx
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x30]
cmp di, bx
je 0x45a543
mov ebx, edx
movzx eax, di
cmp di, word [ebp - 0x120]
je 0x41bd7f
lea esi, [edx + 2]
movzx edi, di
push 0x69
pop edx
mov dword [ebp - 4], esi
cmp ax, dx
ja 0x45a513
jne 0x45a4c8
mov eax, dword [ebp - 0xc]
or dword [ecx], eax
movzx eax, word [esi]
push es
mov ebx, esi
push 0x29
mov dword [ebp - 0x1c], ebx
mov edx, ebx
pop ebx
mov edi, eax
cmp ax, bx
jne 0x41bd3b
mov ebx, esi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
or ecx, dword [ebp - 0x2c]
not eax
and ecx, eax
push 0x29
pop eax
mov dword [ebp - 0x3c], ecx
cmp word [esi], ax
jne 0x45921e
mov edx, dword [ebp - 0xc]
mov eax, ecx
shr eax, 9
and eax, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x161700f8], eax
xor eax, edx
mov dword [ebp - 0x161700fc], eax
mov eax, dword [ebp - 0x124]
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, ecx
and eax, edx
mov dword [ebp - 0x16170094], eax
jmp 0xea2ab9ec
mov esi, dword [ebp - 4]
jmp 0xea2ab9ef
test esi, esi
jne 0x45b6ea
push 0x20
pop eax
push eax
lea eax, [ebp - 0x161700e0]
push eax
push edx
call fcn.00420e3c
test byte [ebp - 8], dl
add esp, 0xc
push 0x20
jmp 0xea2abbcd
push 0x45
pop ecx
cmp word [esi + 2], cx
push 0x5c
pop ecx
jne 0xea2abab9
jmp 0x4587ef
or eax, 0xffffffff
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], eax
leave
push ebp
fadd dword [ebp + 0x10840fd2]
test dword [ebx], 0x75c98500
sbb ecx, dword [ebx + 0x5d89845d]
xchg esp, eax
mov ebx, dword [ebp - 0x68]
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x16170084]
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x54], ebx
sub ecx, eax
mov dword [ebp - 0x48], edx
neg ecx
push 2
sbb ecx, ecx
xor ebx, ebx
pop eax
and ecx, eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x80], ecx
invalid