Function at 0x4185d9
Capabilities:
Encode data using base64

Disassembly:
xor eax, ebx
lea eax, [eax + edx*2 - 0x7e0fe640]
bt ecx, 0x11
ror cl, 0x47
cmovae ecx, edx
bswap eax
sbb eax, 0xb9010589
bswap eax
or dword [esp + edx - 0x7a01], edx
or cl, 0xf
xor ebx, eax
sal edx, cl
push ecx
pop edx
adc edi, eax
mov dword [esp + edx - 0x7a0f], edi
ret
push ecx
add ebp, edx
movzx edx, cl
bt edx, 0x2d
mov esi, dword [esi + ecx - 0x31166285]
neg edx
jno 0x45465c
mov ecx, 0xb806bd00
not ecx
mov eax, dword [esi + ecx - 0x47f942ff]
imul ecx, ecx
movzx edx, cx
push ecx
mov cx, word ss:[eax + edx*2 - 0xf402]
lea esi, [edx + esi - 0x79ff]
mov word [edx + esi - 0x7a01], cx
mov ecx, dword [esp + edx - 0x7a01]
neg word [esp + edx*2 - 0xf401]
lea eax, [ecx + ecx*2 - 0x48f1275d]
lea ebp, [ebp + edx*2 - 0xf406]
mov eax, dword [ebp + edx*2 - 0xf402]
dec cx
neg dword [esp + edx - 0x7a01]
jbe 0x412be7
mov edx, 0xe8a25db5
mov eax, dword [edi]
add edi, 4
mov ecx, 0xff8083b0
neg edx
lea esi, [esi + edx*4 - 0x5d76892d]
xadd cx, dx
movzx ecx, byte [esi + edx - 0x175d83b0]
xor cl, bl
push edx
sub cl, 0xaa
ror cl, 1
btc edx, edx
add edx, 0x34063139
rol edx, 0xd5
sbb cl, 0x16
rol cl, 1
not edx
btr dx, dx
inc dx
not cl
sete dl
shr dl, 0x64
sbb dl, dl
xor cl, 0xa0
add cl, 0x1c
neg edx
xor bl, cl
sal dword [esp], 0xa1
rol edx, 0x35
lea ecx, [esp + ecx + 4]
btr dx, 0x8c
mov dword [ecx], eax
sbb esi, 4
shl word [esp], 0x44
movsx ecx, byte [esp]
mov eax, dword [esi + ecx*2]
sal word [esp + ecx*2 + 1], 0xeb
xor eax, ebx
sub dl, 0x3b
sbb cx, word [esp + ecx]
dec dx
lea eax, [ecx + eax - 0x47bc94b4]
neg eax
and ecx, 0x290d2226
not cx
inc eax
dec dl
neg eax
push edx
pop ecx
xor ebx, eax
sub dl, 0x27
shl ecx, cl
add ebp, eax
pop eax
jmp ebp
mov eax, 0x6b2d3638
or eax, eax
movzx edx, al
mov ecx, dword [ebp + edx*2 - 0x70]
mov dx, word [ebp + eax - 0x6b2d3634]
bts ax, 0xbc
lea ebp, [eax + ebp - 0x6b2d3632]
sub eax, 0x8fbd878d
sub eax, eax
bt eax, eax
mov word ss:[ecx + eax], dx
cwde
movsx edx, al
lea esi, [eax + esi - 4]
cdq
adc edx, edx
rol edx, 0xd0
mov ecx, dword [esi + eax*2]
jae 0x44610a
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov cl, byte [edi + 8]
jmp 0x450f5f
neg eax
lea ecx, [edx*8 + 0x742e1189]
push ecx
inc eax
inc edx
not eax
setnp cl
rol dword [esp + ecx - 0x742e1200], 0x91
xor ebx, eax
btr dx, 0xb8
adc ebp, eax
mov ecx, dword [edi + ecx - 0x742e1200]
xor dx, 0xa98
call fcn.00461f2e
sar ecx, cl
rol edx, 1
neg edx
xadd cl, al
add ecx, ecx
lea edx, [edx + ecx*4 - 0x73ad245f]
bts ecx, 0xb6
sar ecx, cl
dec ax
rol edx, 3
xor ebx, edx
shr ax, 0x4a
idiv al
shl cl, 0x61
adc edi, edx
mov edx, ecx
dec dl
btr eax, eax
mov dx, word [ebp + ecx*2 - 0x8064]
mov ax, word [ebp + ecx*4 - 0x100c6]
mov cl, byte [ebp + ecx*2 - 0x8060]
adc ebp, 4
call fcn.004634a4
rol edx, 3
dec cx
add ax, 0xde80
dec ax
neg edx
add eax, ecx
add eax, 0x2723283e
sub eax, 0xf739b094
xor ebx, edx
sub esi, 4
sar ax, 0x25
xor cl, 0x83
mov dword [esi], edx
shl eax, 0x16
jne fcn.00438d45
not edx
not edx
mov dword [edi], ecx
jmp 0x434857
lea eax, [edx + edx*2 + 0x149d94bd]
jmp ebp
sub eax, edx
and eax, edx
xor ebx, ecx
inc dx
lea edx, [edx + edx - 0x7fea3e45]
mul edx
add edi, ecx
xchg edx, eax
lea edx, [eax + edx*8 + 0x1c2d4c81]
jmp edi
rol eax, 2
imul dx, dx
rol ecx, cl
bswap eax
ror dl, 0xc4
xor ebx, eax
sal dx, 0xef
ror edx, 0xcd
adc edi, eax
rol dx, 0x67
lea ebp, [ebp + ecx - 0x5883b240]
xor cl, ch
movzx eax, dl
mov edx, dword [ebp + ecx - 0x5883b28e]
btr eax, ecx
shl cl, 0x62
xor edx, ebx
neg edx
neg cx
cbw
inc ecx
bswap edx
adc ecx, 0x6ab92227
or ax, ax
ja 0x4276cf
lea edx, [ecx + edx - 0x3b816320]
rol ax, 0x2f
shl cl, 0x24
bswap edx
js 0x4244bc
rol eax, 0x57
inc edx
sal eax, 0xc
bswap edx
jnp 0x41c115
cwde
setp cl
xor ebx, edx
add ebp, edx
xor ax, word [esi + eax*2]
movsx edx, cx
ror ecx, 0xb5
mov cx, word [ecx + esi - 0x7ac80dc2]
and dl, dh
lea esi, [esi + edx*2 - 0xb200]
and ax, cx
not ax
mov word [esi + edx*4 - 0x16404], ax
call fcn.0042c4ef
int3
xor ecx, ebx
dec eax
not edx
bswap ecx
sal al, 0x21
ror ecx, 1
ror al, 0x41
bswap ecx
adc ecx, edx
jmp 0x440b8a
pop ecx
pop eax
pop edx
jb fcn.0041f988
sub esi, 4
call fcn.004177a5
mov ecx, 0xdc83b38d
mov edx, ecx
sub ebp, 4
shr cx, 0x8a
mov eax, dword [ebp]
sub dl, ch
xor eax, ebx
inc cx
btc dx, dx
jae 0x421f2b
inc eax
xadd cl, dl
sbb ecx, 0x1aa9e28e
add ecx, ecx
not eax
jno 0x442d45
mov ecx, 0x6dbacf29
lea eax, [ecx + ecx*2 - 0x4d40a6ec]
btc ecx, eax
lea ebp, [ebp + ecx - 0x6dba4f2d]
and ecx, ecx
lea edx, [eax*2 + 0x67380bb2]
mov edx, dword [ebp + edx - 0x5f1798d0]
xor edx, ebx
neg cx
ror edx, 1
and ecx, 0x9d23fcb4
neg edx
sar ecx, cl
btr eax, 0x12
xor edx, 0xf17cda0
lea edx, [eax + edx - 0x34b4c155]
not edx
xor ebx, edx
add edi, edx
movsx edx, cl
call fcn.00450d54
mov ecx, 0xb63ad804
sub esi, 4
mov edx, dword [esi]
movsx eax, cl
bt ax, cx
xchg cx, ax
xor edx, ebx
cbw
shl ecx, cl
rol edx, 1
lea edx, [eax + edx + 0x7a873b6]
cbw
ror edx, 2
sub edx, 0xbb268d8d
xor cx, ax
sal ecx, 0xed
and ecx, 0x34014c36
xor ebx, edx
btc cx, ax
adc ebp, edx
movzx edx, cx
rol edx, cl
mov edx, edi
jb 0x45fd36
sbb edi, eax
or eax, 0x440e640d
sub ax, 0xdd86
lea ecx, [eax*2 + 0x23844722]
mov dword [edi + eax - 0x440e8687], edx
jp fcn.00434194
bt ecx, 0x80
setb cl
lea esi, [esi + ecx - 0x6e129efb]
call fcn.0042c3f2
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
push 0x45afc0ac
shr byte [esp + 1], 0x24
setae byte [esp + 1]
imul ecx
mov ecx, 0xc3172e9a
not dword [esp]
mov dword [ebp], edx
xchg dword [esp], ecx
xchg word [esp + 2], cx
mov dword [ebp + 4], eax
movzx eax, byte [esp]
movsx edx, cl
cdq
lea esi, [esi + eax*2 - 0x138]
mov eax, dword [eax + esi - 0x9a]
neg edx
sub dword [esp + edx*4], 0x10ab27b6
btc ecx, 0xb3
xor eax, ebx
rol dword [esp + edx], 0xb6
rol ecx, cl
rol eax, 3
dec eax
add cl, 0x2a
rol eax, 1
lea eax, [ecx + eax + 0x1ab1cc7b]
add ecx, ecx
and dl, 0x29
ror eax, 3
ror byte [esp + ecx*2 - 0x2f74b22b], 4
sbb eax, edx
shr ecx, cl
xor ebx, eax
dec dword [esp + ecx*2 - 0xbc]
and ecx, 0x89999831
add byte [esp + edx*8 + 3], ch
adc edi, eax
mov dword [esp + ecx - 0x10], edi
ret