Function at 0x6d89d0
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x48]
sub esp, 0x24
test ecx, ecx
jne 0x6d89e5
xor eax, eax
add esp, 0x24
ret
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
cmp dword [esi + 0xe0], 0x800
mov eax, dword [0x91d3f0]
push edi
jge 0x6d8a0b
cmp dword [eax + 0x58], 0x1400
jl 0x6d900a
mov dl, byte [esi + 0xda]
xor ecx, ecx
cmp dl, 0xe
mov edx, dword [eax + 0xb34]
mov eax, dword [eax + 0x434]
setne cl
push edx
mov edx, dword [esi + 0x2c4]
push eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x2cc]
push ecx
push edx
call fcn.006442f0
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
mov dword [esp + 0x2c], eax
push edx
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x58
jbe 0x6d900a
movzx eax, byte [esi + 0xda]
add eax, 0xfffffffc
cmp eax, 0x3d
ja case.0x6d8a78.7
movzx eax, byte [eax + 0x6d93a0]
jmp dword [eax*4 + 0x6d9398]
mov dword [esp + 0x10], 4
mov ecx, dword [esp + 0x10]
mov eax, 0xa
sub eax, ecx
mov dword [esp + 0x28], eax
jmp 0x6d8ab5
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
mov eax, 0xa
sub eax, ecx
mov dword [esp + 0x28], eax
jmp 0x6d8ab5
mov eax, dword [esp + 0x28]
push eax
call fcn.00678f20
movzx edx, byte [esi + 0xd7]
mov ebp, eax
movzx eax, byte [esi + 0xd8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov ecx, 0xffffff6c
sub ecx, edx
mov ebx, dword [0x91d3f0]
lea edi, [ecx + ecx*2]
shl edi, 5
mov eax, 0xb30f6353
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x30], edx
add esp, 4
mov dword [esp + 0x18], ebp
fild dword [esp + 0x2c]
fcomp dword [ebx + ebp*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6d8feb
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fcomp dword [ebx + ebp*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6d8b63
fld dword [ebx + 0x2c]
fcomp dword [0x8d3048]
fnstsw ax
test ah, 0x41
jne 0x6d8b9a
mov ecx, dword [esp + 0x40]
mov eax, 0x58
cmp ecx, eax
jle 0x6d8b9a
xor edx, edx
mov dx, word [esi + 0xea]
push 0x5800
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.00643cb0
mov ebx, dword [0x91d3f0]
add esp, 0xc
mov dword [esp + 0x3c], eax
mov ax, word [esi + 0x2dc]
cmp ax, 0xcd
je 0x6d8bbe
cmp ax, 0xce
je 0x6d8bbe
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cx, word [esi + 0xea]
push ecx
push edx
jmp 0x6d8be0
fld dword [esi + 0x2e4]
fcomp dword [0x88601c]
fnstsw ax
test ah, 5
jp 0x6d8bf8
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6d900a
mov ebx, dword [0x91d3f0]
mov edx, dword [ebx + ebp*4 + 0xb34]
mov eax, dword [ebx + ebp*4 + 0x434]
mov ecx, dword [esi + 0x2cc]
push edx
mov edx, dword [esi + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
push eax
xor eax, eax
mov ax, word [esi + 0xea]
push eax
call fcn.006442a0
mov eax, dword [esp + 0x58]
add esp, 0x18
cmp eax, 0x64
jge 0x6d8fe0
shl eax, 8
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [esp + 0x14], eax
movzx eax, ax
imul eax, eax, 0xfa4
cdq
xor ecx, ecx
mov cx, word [esi + 0xea]
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 8
push eax
mov dword [esp + 0x24], eax
push ecx
push edx
call fcn.00643cb0
push ebp
mov dx, 0x8000
mov edi, eax
mov eax, dword [0x91d3f0]
mov cx, word [eax + 0x60]
sub cx, word [esp + 0x4c]
push edi
cmp dx, cx
push 0
sbb ebx, ebx
push 0x2c2
push esi
inc ebx
call fcn.006ce1a0
movzx eax, ax
add esp, 0x20
cmp ebx, eax
mov dword [esp + 0x2c], eax
je 0x6d8cf2
mov eax, dword [0x91cfa4]
cmp dword [eax + 0x3fc], 0x20
jle 0x6d8cf2
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
add dx, 0x8000
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jbe 0x6d8cf2
mov ebp, 0x2c6
jmp 0x6d8dd2
cmp dword [esi + 0xe0], 0x800
mov ebp, 0x2c2
jle 0x6d8dd2
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d8d78
mov edx, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [esi + 0xec]
xor eax, eax
mov ax, word [edx + 0x60]
push ecx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6d8d78
mov edx, dword [0x91d3f0]
mov ecx, dword [esp + 0x20]
xor eax, eax
mov ax, word [edx + 0x60]
add ax, 0x8000
push ecx
mov ecx, dword [esp + 0x40]
push eax
push ecx
call fcn.00643cb0
mov ebp, 0x2c3
jmp 0x6d8dcd
cmp dword [esi + 0xe0], 0x800
jle 0x6d8dd2
mov eax, dword [0x91d3f0]
xor edx, edx
mov dx, word [esi + 0xec]
xor ecx, ecx
mov cx, word [eax + 0x60]
push edx
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d8dd2
mov eax, dword [0x91d3f0]
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov cx, word [eax + 0x60]
add cx, 0x8000
push edx
mov edx, dword [esp + 0x40]
push ecx
push edx
call fcn.00643cb0
mov ebp, 0x2c4
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esi + 0xe0]
push 0
push ecx
push edx
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
push ebx
shr eax, 0x1f
add edx, eax
push edx
push edi
push ebp
push esi
mov dword [esp + 0x48], 0
call fcn.006d5750
add esp, 0x24
test eax, eax
jne 0x6d8f2d
cmp ebx, dword [esp + 0x2c]
je 0x6d8f35
mov ecx, dword [0x91d3f0]
mov eax, dword [esp + 0x3c]
xor edx, edx
mov dx, word [ecx + 0x60]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d8f35
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d8f35
mov eax, dword [0x91cfa4]
cmp dword [eax + 0x3f8], 0x800
jle 0x6d8f35
movzx eax, word [eax + 0x406]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja 0x6d8f35
mov eax, dword [0x91cfa4]
mov ebp, dword [eax + 0x3f8]
movzx eax, word [esp + 0x14]
xor edx, edx
cmp ebp, 0x1400
setg dl
imul eax, eax, 0xe38
add edx, 0x308
mov ebp, edx
cdq
xor ecx, ecx
mov cx, word [esi + 0xea]
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 8
push eax
xor ebx, 1
push ecx
push edx
call fcn.00643cb0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [esi + 0xe0]
push 0
push ecx
push edx
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
push ebx
shr eax, 0x1f
add edx, eax
push edx
push edi
push ebp
push esi
call fcn.006d5750
add esp, 0x30
test eax, eax
je 0x6d8f35
mov dword [esp + 0x24], 1
cmp bp, 0x2c2
jne 0x6d8fd4
mov eax, dword [0x91cfa4]
cmp dword [eax + 0x3f8], 0x800
jle 0x6d8fd4
xor ecx, ecx
mov cx, word [eax + 0x406]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe 0x6d8f99
mov eax, dword [0x91cfa4]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov cx, word [eax + 0x406]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja 0x6d8fd4
mov ecx, dword [0x91d3f0]
mov eax, dword [esp + 0x20]
xor edx, edx
mov dx, word [ecx + 0x60]
add dx, 0x8000
push eax
mov eax, dword [esp + 0x40]
mov ebp, 0x2c4
push edx
push eax
call fcn.00643cb0
mov ecx, dword [esp + 0x24]
push ecx
push 0
push ebx
mov edi, eax
push edi
push ebp
push esi
call fcn.00672040
add esp, 0x24
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x6d9014
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x40], 0x5c
jg 0x6d90f7
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
add eax, 2
sub edx, 2
cmp eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
jle 0x6d8ab1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x10]
push edx
push ebp
push esi
call fcn.0061e910
push esi
mov word [esi + 0xdc], 0xd2
mov byte [esi + 0x2c1], bl
call fcn.00676420
mov ax, word [esp + 0x4c]
mov word [esi + 0xf4], ax
mov byte [esi + 0xda], 2
mov ecx, dword [0x91cfa4]
mov edx, dword [ecx + 0x3f8]
movzx eax, bp
add esp, 0x10
cmp eax, 0x2be
mov dword [esi + 0xe4], edx
jl 0x6d9079
cmp eax, 0x2bf
jg 0x6d9079
push esi
call fcn.0068e3a0
add esp, 4
jmp 0x6d908a
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x3f8]
mov dword [esi + 0xe0], ecx
mov edx, dword [0x91cfa4]
mov ax, word [edx + 0x406]
mov ebx, dword [esp + 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
mov word [esi + 0xec], ax
mov word [esi + 0xf0], di
mov byte [esi + 0x134], 0
mov dword [esi + 0x1ac], ebx
push ecx
push edi
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
mov dx, word [esp + 0x1c]
mov word [esi + 0xf2], dx
push 4
push esi
mov word [esi + 0xfc], ax
call fcn.00655eb0
add esp, 0x10
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x24
ret
mov eax, dword [esp + 0x1c]
push ebp
push eax
push 0
push 0x2bd
push esi
mov dword [esp + 0x2c], 0x2bd
call fcn.006ce1a0
mov ecx, dword [0x91d3f0]
movzx edi, ax
mov dword [esp + 0x3c], edi
neg edi
sbb edi, edi
and edi, 0xfffe
inc edi
mov ebx, 4
sub ebx, edi
shl ebx, 0xd
add bx, word [ecx + 0x60]
mov ecx, dword [esp + 0x50]
xor eax, eax
mov ax, 0x8000
mov dx, cx
sub dx, word [esi + 0xea]
push ecx
cmp ax, dx
push ebx
sbb eax, eax
inc eax
mov dword [esp + 0x48], eax
call fcn.006442d0
movzx eax, ax
add eax, 0x182c
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
add esp, 0x1c
cmp ax, 0x100
mov dword [esp + 0x14], eax
jbe 0x6d9183
mov dword [esp + 0x14], 0x100
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x2c]
je 0x6d91c6
mov eax, dword [esp + 0x40]
imul edi, edi, 0x1c70
shl eax, 8
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [0x91d3f0]
add di, word [edx + 0x60]
sar eax, 7
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x2bc
add edi, 0x8000
mov ebx, edi
jmp 0x6d927e
cmp dword [esi + 0xe0], 0x600
jle 0x6d9225
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jb 0x6d9225
mov ecx, dword [0x91d3f0]
xor eax, eax
mov ax, word [esi + 0xec]
xor edx, edx
mov dx, word [ecx + 0x60]
push eax
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja 0x6d9225
mov dword [esp + 0x18], 0x2be
jmp 0x6d927e
cmp dword [esi + 0xe0], 0x800
jle 0x6d927e
mov ecx, dword [0x91d3f0]
xor eax, eax
mov ax, word [esi + 0xec]
xor edx, edx
mov dx, word [ecx + 0x60]
push eax
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d927e
movzx eax, word [esp + 0x14]
imul eax, eax, 0x238c
mov ebx, dword [esp + 0x1c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
imul eax, edi
sub ebx, eax
mov dword [esp + 0x18], 0x2bf
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
push 1
push 0
push ebp
push edi
push eax
mov eax, dword [esi + 0xe0]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
mov edx, dword [esp + 0x30]
push ebx
push edx
push esi
call fcn.006d5750
add esp, 0x24
test eax, eax
je 0x6d900a
push edi
mov edi, dword [esp + 0x1c]
push edi
push esi
call fcn.0061e910
mov al, byte [esp + 0x34]
push esi
mov byte [esi + 0x2c1], al
call fcn.00676420
mov dx, word [esp + 0x4c]
xor ecx, ecx
add esp, 0x10
cmp di, 0x2bc
setne cl
mov byte [esi + 0xda], 2
mov word [esi + 0xf4], dx
add ecx, 0xd3
mov word [esi + 0xdc], cx
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x3f8]
movzx eax, di
cmp eax, 0x2be
mov dword [esi + 0xe4], ecx
jl 0x6d9335
cmp eax, 0x2bf
jg 0x6d9335
push esi
call fcn.0068e3a0
add esp, 4
jmp 0x6d9347
mov edx, dword [0x91cfa4]
mov eax, dword [edx + 0x3f8]
mov dword [esi + 0xe0], eax
mov ecx, dword [0x91cfa4]
mov dx, word [ecx + 0x406]
xor eax, eax
mov ax, word [esi + 0xea]
mov word [esi + 0xec], dx
mov word [esi + 0xf0], bx
mov byte [esi + 0x134], 0
mov dword [esi + 0x1ac], ebp
push eax
push ebx
call fcn.006442d0
mov cx, word [esp + 0x1c]
movzx eax, ax
cdq
idiv ebp
mov word [esi + 0xf2], cx
jmp 0x6d90d8