Function at 0x468234
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffa54
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x59c], ebx
mov dword [ebp - 0x598], ebx
mov dword [ebp - 0x594], ebx
mov dword [ebp - 0x590], ebx
mov dword [ebp - 0x58c], ebx
mov dword [ebp - 0x454], ebx
mov dword [ebp - 0x458], ebx
mov esi, dword [ebp + 8]
lea edi, [ebp - 0x200]
push ecx
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov esi, eax
lea edi, [ebp - 0x100]
push ecx
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov dword [ebp - 0x308], ecx
mov byte [ebp - 0x302], dl
xor eax, eax
push ebp
push 0x469043
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x309], 1
xor eax, eax
mov al, byte [ebp - 0x302]
cmp eax, 0x20
ja case.0x4682c7.0
mov al, byte [eax + 0x4682ce]
jmp dword [eax*4 + 0x4682ef]
mov byte [ebp - 0x31d], 0xff
cmp byte [ebp - 0x100], 0
jbe 0x468343
mov al, byte [ebp - 0xff]
mov byte [ebp - 0x331], al
mov al, byte [ebp - 0x331]
sub al, 0x63
je 0x46835d
sub al, 9
je 0x46835d
sub al, 2
je 0x46835d
sub al, 4
je 0x46835d
sub al, 6
jne 0x46839f
mov byte [ebp - 0x301], 2
lea edx, [ebp - 0x301]
lea eax, [ebp - 0x100]
call fcn.004a0580
mov byte [ebp - 0x31d], al
lea eax, [ebp - 0x100]
push eax
xor edx, edx
mov dl, byte [ebp - 0x301]
mov ecx, 0xff
lea eax, [ebp - 0x100]
call fcn.004028d8
jmp 0x468489
cmp byte [ebp - 0x331], 0x3d
je 0x468489
lea edx, [ebp - 0x100]
mov eax, 0x46905c
call fcn.00402cd4
test eax, eax
jne 0x468402
cmp byte [ebp - 0x331], 0x6f
je 0x468489
cmp byte [ebp - 0x331], 0x66
je 0x468489
lea eax, [ebp - 0x200]
push eax
xor ecx, ecx
mov cl, byte [ebp - 0x31d]
xor edx, edx
mov dl, byte [ebp - 0x100]
inc edx
lea eax, [ebp - 0x200]
call fcn.004028d8
jmp 0x468489
mov word [ebp - 0x328], 0
xor eax, eax
mov al, byte [ebp - 0x100]
test ax, ax
jle 0x46847d
mov word [ebp - 0x342], ax
mov word [ebp - 0x326], 1
xor eax, eax
mov al, byte [ebp - 0x200]
cmp ax, word [ebp - 0x328]
jle 0x46846d
movsx eax, word [ebp - 0x326]
cmp byte [ebp + eax - 0x100], 0x3f
jne 0x46846d
inc word [ebp - 0x328]
movsx eax, word [ebp - 0x326]
mov al, byte [ebp + eax - 0x200]
movsx edx, word [ebp - 0x328]
mov byte [ebp + edx - 0x200], al
inc word [ebp - 0x326]
dec word [ebp - 0x342]
jne 0x468428
mov al, byte [ebp - 0x328]
mov byte [ebp - 0x200], al
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x200]
call fcn.00407940
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x200]
call fcn.0040331c
mov al, byte [ebp - 0x200]
cmp al, byte [ebp - 0x31d]
jbe 0x4684c5
mov al, byte [ebp - 0x31d]
mov byte [ebp - 0x200], al
cmp byte [ebp - 0x302], 0xa
je 0x468578
cmp byte [ebp - 0x302], 0xb
jne 0x46850d
mov al, byte [ebp - 0x200]
cmp al, byte [ebp - 0x31d]
jae 0x4684fb
xor eax, eax
mov al, byte [ebp - 0x200]
mov byte [ebp + eax - 0x1ff], 0
jmp 0x46855a
xor eax, eax
mov al, byte [ebp - 0x31d]
mov byte [ebp + eax - 0x200], 0
jmp 0x46855a
lea eax, [ebp - 0x454]
lea edx, [ebp - 0x200]
call fcn.0040569c
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x458]
mov edx, dword [0x4b0b00]
mov edx, dword [edx]
call fcn.0040569c
mov edx, dword [ebp - 0x458]
pop eax
call fcn.00405700
mov edx, dword [ebp - 0x454]
lea eax, [ebp - 0x200]
mov ecx, 0xff
call fcn.004056d4
xor ecx, ecx
mov cl, byte [ebp - 0x31d]
mov edx, dword [ebp - 0x308]
lea eax, [ebp - 0x1ff]
call fcn.00402ae8
jmp 0x469015
mov eax, dword [ebp - 0x308]
lea edx, [ebp - 0x200]
call fcn.0040331c
jmp 0x469015
lea ecx, [ebp - 0x450]
lea edx, [ebp - 0x100]
mov al, byte [ebp - 0x302]
call fcn.00465b1c
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x100]
call fcn.0040331c
lea edx, [ebp - 0x100]
mov eax, 0x469060
call fcn.00402cd4
test eax, eax
setg byte [ebp - 0x332]
lea edx, [ebp - 0x100]
mov eax, 0x469064
call fcn.00402cd4
test eax, eax
setg byte [ebp - 0x333]
lea edx, [ebp - 0x100]
mov eax, 0x469068
call fcn.00402cd4
test eax, eax
setg byte [ebp - 0x334]
lea eax, [ebp - 0x328]
push eax
lea eax, [ebp - 0x32a]
push eax
lea ecx, [ebp - 0x326]
lea edx, [ebp - 0x200]
lea eax, [ebp - 0x100]
call fcn.00411dc8
test al, al
jne 0x468654
cmp word [ebp - 0x326], 0
jne 0x468648
cmp word [ebp - 0x328], 0
jne 0x468648
cmp word [ebp - 0x32a], 0
je 0x468654
mov byte [ebp - 0x309], 0
jmp 0x469015
lea eax, [ebp - 0x33a]
push eax
lea ecx, [ebp - 0x338]
lea edx, [ebp - 0x336]
mov eax, dword [ebp - 0x308]
mov eax, dword [eax]
call fcn.00411af4
cmp byte [ebp - 0x332], 0
je 0x46868b
mov ax, word [ebp - 0x326]
mov word [ebp - 0x336], ax
cmp byte [ebp - 0x333], 0
je 0x4686a2
mov ax, word [ebp - 0x328]
mov word [ebp - 0x338], ax
cmp byte [ebp - 0x334], 0
je 0x4686b9
mov ax, word [ebp - 0x32a]
mov word [ebp - 0x33a], ax
mov cx, word [ebp - 0x33a]
mov dx, word [ebp - 0x338]
mov ax, word [ebp - 0x336]
call fcn.00411a10
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 0
jl 0x4686f0
mov eax, dword [ebp - 0x308]
mov edx, dword [ebp - 0x340]
mov dword [eax], edx
cmp dword [ebp - 0x340], 0
setge byte [ebp - 0x309]
jmp 0x469015
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x328]
push eax
lea eax, [ebp - 0x32a]
push eax
lea ecx, [ebp - 0x450]
lea edx, [ebp - 0x100]
mov al, byte [ebp - 0x302]
call fcn.00465b1c
lea eax, [ebp - 0x450]
lea ecx, [ebp - 0x326]
lea edx, [ebp - 0x200]
call fcn.00411dc8
test al, al
jne 0x468774
cmp word [ebp - 0x326], 0
jne 0x46876b
cmp word [ebp - 0x328], 0
jne 0x46876b
cmp word [ebp - 0x32a], 0
je 0x468774
mov byte [ebp - 0x309], 0
jmp 0x4687d8
cmp byte [ebp - 0x302], 3
je 0x468786
cmp byte [ebp - 0x302], 0x1f
jne 0x4687b6
mov al, byte [ebp - 0x326]
mov edx, dword [ebp - 0x308]
mov byte [edx], al
mov al, byte [ebp - 0x328]
mov edx, dword [ebp - 0x308]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x308]
mov dx, word [ebp - 0x32a]
mov word [eax + 2], dx
jmp 0x4687d8
mov cx, word [ebp - 0x32a]
mov dx, word [ebp - 0x328]
mov ax, word [ebp - 0x326]
call fcn.00411a10
mov edx, dword [ebp - 0x308]
mov dword [edx], eax
cmp byte [ebp - 0x302], 0x15
jne 0x469015
lea ecx, [ebp - 0x450]
mov edx, dword [ebp - 0x308]
mov edx, dword [edx]
lea eax, [ebp - 0x100]
call fcn.00412b54
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x100]
call fcn.0040331c
mov eax, dword [ebp - 0x308]
mov eax, dword [eax]
mov dword [ebp - 0x324], eax
lea ecx, [ebp - 0x450]
lea edx, [ebp - 0x100]
mov al, byte [ebp - 0x302]
call fcn.00465b1c
lea eax, [ebp - 0x450]
lea edx, [ebp - 0x200]
call fcn.00412e2c
mov edx, dword [ebp - 0x308]
mov dword [edx], eax
mov eax, dword [ebp - 0x308]
cmp dword [eax], 0xffffffff
jne 0x468869
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp - 0x302], 4
jne 0x4688a7
mov eax, dword [ebp - 0x308]
inc eax
push eax
mov ecx, dword [ebp - 0x308]
add ecx, 2
mov edx, dword [ebp - 0x308]
add edx, 3
mov eax, dword [ebp - 0x308]
mov eax, dword [eax]
call fcn.00412c8c
mov eax, dword [ebp - 0x308]
mov byte [eax], 0
jmp 0x469015
cmp byte [ebp - 0x302], 0x15
jne 0x469015
mov eax, dword [ebp - 0x308]
mov eax, dword [eax]
mov edx, dword [ebp - 0x308]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x308]
mov edx, dword [ebp - 0x324]
mov dword [eax], edx
jmp 0x469015
mov dword [ebp - 0x330], 1
lea edx, [ebp - 0x100]
mov eax, 0x46906c
call fcn.00402cd4
mov byte [ebp - 0x31e], al
cmp byte [ebp - 0x31e], 0
jne 0x46890a
mov byte [ebp - 0x31e], 0xff
jmp 0x468931
mov al, byte [ebp - 0x31e]
inc eax
mov byte [ebp - 0x301], al
lea edx, [ebp - 0x301]
lea eax, [ebp - 0x100]
call fcn.004a0580
mov ecx, eax
dec ecx
shl dword [ebp - 0x330], cl
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x100]
call fcn.00407940
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x558]
lea eax, [ebp - 0x200]
call fcn.00407940
lea eax, [ebp - 0x558]
pop edx
call fcn.00402cd4
dec eax
jne 0x469015
mov eax, dword [ebp - 0x308]
mov edx, dword [ebp - 0x330]
or dword [eax], edx
jmp 0x469015
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x100]
call fcn.00407940
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x558]
lea eax, [ebp - 0x200]
call fcn.00407940
lea eax, [ebp - 0x558]
pop edx
call fcn.00402cd4
dec eax
sete al
mov edx, dword [ebp - 0x308]
mov byte [edx], al
jmp 0x469015
xor eax, eax
mov al, byte [ebp - 0x200]
add eax, 7
shr eax, 3
mov byte [ebp - 0x31d], al
xor edx, edx
mov dl, byte [ebp - 0x31d]
mov eax, dword [ebp - 0x308]
xor ecx, ecx
call fcn.004036cc
mov al, byte [ebp - 0x200]
mov byte [ebp - 0x31e], al
mov al, byte [ebp - 0x200]
dec eax
test al, al
jb 0x469015
inc eax
mov byte [ebp - 0x343], al
mov byte [ebp - 0x301], 0
mov esi, 0x469070
lea edi, [ebp - 0x578]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4af428]
and eax, 0xff
bts dword [ebp - 0x578], eax
xor eax, eax
mov al, byte [ebp - 0x31e]
mov al, byte [ebp + eax - 0x200]
and eax, 0xff
bt dword [ebp - 0x578], eax
jb 0x468a9c
mov eax, dword [ebp - 0x308]
mov esi, eax
lea edi, [ebp - 0x588]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov al, byte [ebp - 0x301]
cmp al, 0x7f
ja 0x468a8a
and eax, 0xff
bts dword [ebp - 0x588], eax
mov eax, dword [ebp - 0x308]
lea esi, [ebp - 0x588]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
dec byte [ebp - 0x31e]
inc byte [ebp - 0x301]
dec byte [ebp - 0x343]
jne 0x468a22
jmp 0x469015
push ebp
mov al, 1
call fcn.00467e54
pop ecx
lea eax, [ebp - 0x58c]
lea edx, [ebp - 0x300]
call fcn.0040569c
mov eax, dword [ebp - 0x58c]
lea edx, [ebp - 0x31c]
call fcn.00404068
fstp xword [ebp - 0x318]
wait
fld xword [ebp - 0x318]
mov eax, dword [ebp - 0x308]
fstp dword [eax]
wait
cmp dword [ebp - 0x31c], 0
jle 0x469015
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
jmp 0x469015
push ebp
mov al, 1
call fcn.00467e54
pop ecx
lea eax, [ebp - 0x590]
lea edx, [ebp - 0x300]
call fcn.0040569c
mov eax, dword [ebp - 0x590]
lea edx, [ebp - 0x31c]
call fcn.00404068
fstp xword [ebp - 0x318]
wait
cmp dword [ebp - 0x31c], 0
jle 0x468b68
mov byte [ebp - 0x309], 0
mov word [ebp - 0x300], 0x3001
mov byte [ebp - 0x31d], 0
xor eax, eax
mov al, byte [ebp - 0x100]
test ax, ax
jle 0x468bc2
mov word [ebp - 0x342], ax
mov word [ebp - 0x326], 1
movsx eax, word [ebp - 0x326]
mov al, byte [ebp + eax - 0x100]
add al, 0xd8
cmp al, 0x57
ja 0x468baa
and eax, 0x7f
bt dword [0x469090], eax
jae 0x468bb2
inc byte [ebp - 0x31d]
inc word [ebp - 0x326]
dec word [ebp - 0x342]
jne 0x468b8c
xor eax, eax
mov al, byte [ebp - 0x31d]
inc eax
shr eax, 1
mov byte [ebp - 0x31d], al
xor edx, edx
mov dl, byte [ebp - 0x31d]
mov eax, dword [ebp - 0x308]
xor ecx, ecx
call fcn.004036cc
dec byte [ebp - 0x31d]
xor eax, eax
mov al, byte [ebp - 0x31d]
add eax, eax
mov word [ebp - 0x32a], ax
cmp byte [ebp - 0x2ff], 0x2d
jne 0x468c31
xor eax, eax
mov al, byte [ebp - 0x31d]
mov edx, dword [ebp - 0x308]
mov byte [edx + eax], 0xd
lea eax, [ebp - 0x300]
mov ecx, 1
mov edx, 1
call fcn.0040291c
jmp 0x468c43
xor eax, eax
mov al, byte [ebp - 0x31d]
mov edx, dword [ebp - 0x308]
mov byte [edx + eax], 0xc
xor eax, eax
mov al, byte [ebp - 0x300]
cmp ax, 1
jl 0x469015
mov word [ebp - 0x326], ax
movsx eax, word [ebp - 0x326]
cmp byte [ebp + eax - 0x300], 0x2e
je 0x468cf1
movsx eax, word [ebp - 0x32a]
and eax, 0x80000001
jns 0x468c84
dec eax
or eax, 0xfffffffe
inc eax
dec eax
jne 0x468cb1
movsx eax, word [ebp - 0x32a]
sar eax, 1
jns 0x468c95
adc eax, 0
mov edx, dword [ebp - 0x308]
movsx ecx, word [ebp - 0x326]
mov cl, byte [ebp + ecx - 0x300]
sub cl, 0x30
mov byte [edx + eax], cl
jmp 0x468cdc
movsx eax, word [ebp - 0x32a]
sar eax, 1
jns 0x468cbf
adc eax, 0
mov edx, dword [ebp - 0x308]
movsx ecx, word [ebp - 0x326]
mov cl, byte [ebp + ecx - 0x300]
sub cl, 0x30
shl ecx, 4
or byte [edx + eax], cl
dec word [ebp - 0x32a]
cmp word [ebp - 0x32a], 0
jl 0x469015
dec word [ebp - 0x326]
cmp word [ebp - 0x326], 0
jne 0x468c5c
jmp 0x469015
push ebp
mov al, 1
call fcn.00467e54
pop ecx
lea eax, [ebp - 0x594]
lea edx, [ebp - 0x300]
call fcn.0040569c
mov eax, dword [ebp - 0x594]
lea edx, [ebp - 0x31c]
call fcn.00404068
fstp xword [ebp - 0x318]
wait
fld xword [ebp - 0x318]
mov eax, dword [ebp - 0x308]
fstp qword [eax]
wait
cmp dword [ebp - 0x31c], 0
jle 0x469015
cmp byte [ebp - 0x300], 0
sete byte [ebp - 0x309]
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x469015
push ebp
mov al, 1
call fcn.00467e54
pop ecx
lea eax, [ebp - 0x598]
lea edx, [ebp - 0x300]
call fcn.0040569c
mov eax, dword [ebp - 0x598]
lea edx, [ebp - 0x31c]
call fcn.00404068
mov eax, dword [ebp - 0x308]
fstp xword [eax]
wait
cmp dword [ebp - 0x31c], 0
jle 0x469015
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov word [eax + 8], dx
jmp 0x469015
push ebp
xor eax, eax
call fcn.00467e54
pop ecx
mov byte [ebp - 0x301], 1
lea edx, [ebp - 0x301]
lea eax, [ebp - 0x300]
call fcn.004a0580
mov dword [ebp - 0x324], eax
cmp byte [ebp - 0x302], 0x1c
jne 0x468e44
cmp dword [ebp - 0x324], 0
jl 0x468e1c
cmp dword [ebp - 0x324], 0xff
jle 0x468e31
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
mov byte [eax], 0
jmp 0x469015
mov al, byte [ebp - 0x324]
mov edx, dword [ebp - 0x308]
mov byte [edx], al
jmp 0x469015
cmp byte [ebp - 0x302], 0x14
jne 0x468e91
cmp dword [ebp - 0x324], 0xffff8000
jl 0x468e65
cmp dword [ebp - 0x324], 0x7fff
jle 0x468e7c
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
mov word [eax], 0
jmp 0x469015
mov eax, dword [ebp - 0x308]
mov dx, word [ebp - 0x324]
mov word [eax], dx
jmp 0x469015
cmp byte [ebp - 0x302], 0xe
jne 0x468edb
cmp dword [ebp - 0x324], 0
jl 0x468eaf
cmp dword [ebp - 0x324], 0xffff
jle 0x468ec6
mov byte [ebp - 0x309], 0
mov eax, dword [ebp - 0x308]
mov word [eax], 0
jmp 0x469015
mov eax, dword [ebp - 0x308]
mov dx, word [ebp - 0x324]
mov word [eax], dx
jmp 0x469015
mov eax, dword [ebp - 0x308]
mov edx, dword [ebp - 0x324]
mov dword [eax], edx
jmp 0x469015
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x200]
call fcn.00407940
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x59c]
call fcn.0040569c
lea eax, [ebp - 0x59c]
mov edx, 0x4690a4
call fcn.00405700
mov edx, dword [ebp - 0x59c]
lea eax, [ebp - 0x200]
mov ecx, 0xff
call fcn.004056d4
mov byte [ebp - 0x301], 1
lea eax, [ebp - 0x5a0]
xor edx, edx
mov dl, byte [ebp - 0x301]
add edx, edx
mov dl, byte [ebp + edx - 0x200]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x5a0]
lea eax, [ebp - 0x5a4]
call fcn.0040331c
lea eax, [ebp - 0x5a8]
xor edx, edx
mov dl, byte [ebp - 0x301]
add edx, edx
mov dl, byte [ebp + edx - 0x201]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x5a8]
lea eax, [ebp - 0x5a4]
mov cl, 2
call fcn.004032ec
lea edx, [ebp - 0x5a4]
lea eax, [ebp - 0x5ac]
call fcn.0040331c
mov edx, 0x4690b8
lea eax, [ebp - 0x5ac]
mov cl, 3
call fcn.004032ec
lea edx, [ebp - 0x5ac]
lea eax, [ebp - 0x300]
call fcn.0040331c
mov byte [ebp - 0x31e], 1
lea edx, [ebp - 0x31e]
lea eax, [ebp - 0x300]
call fcn.004a0580
xor edx, edx
mov dl, byte [ebp - 0x301]
mov ecx, dword [ebp - 0x308]
mov byte [ecx + edx - 1], al
inc byte [ebp - 0x301]
cmp byte [ebp - 0x301], 9
jne 0x468f3d
jmp 0x469015
mov byte [ebp - 0x309], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46904a
lea eax, [ebp - 0x59c]
mov edx, 5
call fcn.0040545c
lea eax, [ebp - 0x458]
mov edx, 2
call fcn.0040545c
ret