Function at 0x10016830
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
push esi
mov esi, dword [ebp + 0xc]
lea edx, [eax + 0x2a8]
mov ecx, eax
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x8c], edx
cmp eax, edx
ja 0x10016e68
lea ebx, [ebx]
mov edx, dword [ebp + 0x18]
cmp ecx, 0x5bd1
ja 0x10016d19
je 0x10016cf0
cmp ecx, 0x1234
ja 0x10016b6b
je 0x10016b0b
lea eax, [ecx - 0x11df]
cmp eax, 0x44
ja case.0x10016e20.24569
movzx eax, byte [eax + 0x10016f50]
jmp dword [eax*4 + 0x10016f38]
mov ecx, dword [edx]
cmp dword [ecx + 8], 0
jne 0x100168d7
mov ecx, 0x5cdc
mov eax, ecx
sub eax, 0x5cdc
je 0x100168c5
sub eax, 0x4b
je 0x10016e68
jmp 0x100168cc
mov dword [ebp - 8], 0xc
add ecx, 0x4b
cmp ecx, 0x5d27
jbe 0x100168b1
cmp dword [edi], 0x10
jae case.0x10016e20.24569
mov edx, 0x46a9
mov eax, edx
sub eax, 0x46a9
je 0x10016911
sub eax, 0x1c
je 0x100168fd
sub eax, 0x1c
jne 0x10016930
add dword [edi], 8
jmp 0x10016930
mov eax, dword [ebp + 8]
dec dword [eax]
mov eax, dword [esi]
movzx eax, byte [eax]
mov ecx, dword [edi]
shl eax, cl
add dword [ebx], eax
inc dword [esi]
jmp 0x10016930
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0
jne 0x10016930
mov eax, 0x43ed
cmp eax, eax
je 0x10016edb
add eax, 0xd
cmp eax, 0x43ed
jbe 0x10016920
add edx, 0x1c
cmp edx, 0x46e1
jbe 0x100168e5
cmp dword [edi], 0x10
jb 0x100168e0
jmp case.0x10016e20.24569
mov edx, dword [ebx]
and dl, 0xf
cmp dl, 8
je 0x10016966
mov eax, 0x2ba6
cmp eax, eax
je 0x10016ee6
add eax, 0xf
cmp eax, 0x2ba6
jbe 0x10016956
mov eax, 0x10b7
cmp eax, eax
jne 0x10016975
shr dword [ebx], 4
add dword [edi], 0xfffffffc
add eax, 0x4b
cmp eax, 0x10b7
jbe 0x1001696d
jmp case.0x10016e20.24569
mov eax, dword [edx]
mov dword [eax + 0x10], 0
mov ecx, dword [edx]
mov eax, dword [ecx + 0x20]
test eax, eax
je case.0x10016e20.24569
mov dword [eax + 0x30], 0xffffffff
jmp case.0x10016e20.24569
mov edx, dword [edx]
test byte [edx + 8], 2
je case.0x10016e20.24569
cmp dword [ebx], 0x8b1f
jne case.0x10016e20.24569
xor edi, edi
cmp edi, 0x2c
ja case.0x100169d0.1
movzx eax, byte [edi + 0x10016fb0]
jmp dword [eax*4 + 0x10016f98]
push 0
push 0
xor eax, eax
call fcn.100281e0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
push 4
push 0
mov dword [edx + 0x18], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x70], eax
jmp case.0x100169d0.1
mov byte [ebp - 0x11], 1
jmp case.0x100169d0.1
mov ecx, dword [ebp + 0x14]
mov eax, 0x1108
cmp eax, eax
jne 0x10016a1d
mov dword [ebx], 0
mov dword [ecx], 0
add eax, 0x12
cmp eax, 0x1108
jbe 0x10016a0f
cmp byte [ebp - 0x11], 0
je case.0x100169d0.1
mov eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp case.0x100169d0.1
mov esi, 0x5753
mov eax, esi
sub eax, 0x5753
je 0x10016a71
sub eax, 0x47
jne 0x10016a78
mov ecx, dword [ebx]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
shr ecx, 8
mov byte [eax + 1], cl
mov ecx, dword [edx]
mov edx, dword [ecx + 0x18]
push 2
push edx
call fcn.100281e0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov dword [edx + 0x18], eax
jmp 0x10016a78
mov al, byte [ebx]
mov ecx, dword [ebp + 0x10]
mov byte [ecx], al
add esi, 0x47
cmp esi, 0x579a
jbe 0x10016a3e
cmp dword [ebp - 0x70], 0
jne case.0x100169d0.1
mov byte [ebp - 0x11], 0
add edi, 0xb
lea edx, [edi + 0x4a56]
cmp edx, 0x4a82
jbe 0x100169c0
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
jmp case.0x10016e20.24569
mov eax, dword [edx]
test byte [eax + 8], 1
je 0x10016ad3
mov ecx, dword [ebx]
movzx eax, cl
shl eax, 8
shr ecx, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
test edx, edx
je case.0x10016e20.24569
mov ecx, 0x57e
jmp 0x10016ae0
mov eax, ecx
sub eax, 0x57e
je 0x10016af4
sub eax, 0x26
je 0x10016e68
jmp 0x10016afb
mov dword [ebp - 8], 0x1d
add ecx, 0x26
cmp ecx, 0x5a4
jbe 0x10016ae0
jmp case.0x10016e20.24569
mov eax, dword [ebx]
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
and eax, 0xf
add eax, 8
mov dword [edx], eax
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x24]
test edx, edx
jne 0x10016b2c
mov dword [ecx + 0x24], eax
jmp case.0x10016e20.24569
cmp eax, edx
jbe case.0x10016e20.24569
mov ecx, 0x404e
lea esp, [esp]
mov eax, ecx
sub eax, 0x404e
je 0x10016b54
sub eax, 0x30
je 0x10016e68
jmp 0x10016b5b
mov dword [ebp - 8], 0x1d
add ecx, 0x30
cmp ecx, 0x407e
jbe 0x10016b40
jmp case.0x10016e20.24569
cmp ecx, 0x1267
ja 0x10016c2b
je 0x10016c00
mov eax, ecx
sub eax, 0x1245
je 0x10016bcc
sub eax, 0x11
jne case.0x10016e20.24569
mov eax, dword [ebx]
shr eax, 8
not eax
and eax, 2
or eax, 9
mov dword [ebp - 0x78], eax
mov ecx, 0x6b8f
mov eax, ecx
sub eax, 0x6b8f
je 0x10016bb6
sub eax, 0x3f
jne 0x10016bbc
mov dword [edi], eax
jmp 0x10016bbc
mov dword [ebx], 0
add ecx, 0x3f
cmp ecx, 0x6bce
jbe 0x10016ba4
jmp case.0x10016e20.24569
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
push 0
push 0
push 0
mov dword [eax + 0x14], edx
call fcn.1000ffb0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x1c]
mov dword [edx + 0x18], eax
mov edx, dword [ecx]
mov dword [edx + 0x30], eax
jmp case.0x10016e20.24569
mov eax, 0x7da3
cmp eax, eax
je 0x10016efc
add eax, 0x2d
cmp eax, 0x7da3
jbe 0x10016c07
mov ecx, dword [ebp + 0x18]
push ecx
call sym.IT_Markt.dll_decryptExeFs
add esp, 4
mov byte [ebp - 8], al
jmp case.0x10016e20.24569
mov eax, ecx
sub eax, 0x5baf
je 0x10016c88
sub eax, 0x11
jne case.0x10016e20.24569
mov byte [ebp - 0x88], al
mov dword [ebp - 0x87], eax
mov dword [ebp - 0x83], eax
mov dword [ebp - 0x7f], eax
mov word [ebp - 0x7b], ax
mov byte [ebp - 0x79], al
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x78]
push ecx
lea edx, [ebp - 0x88]
push edx
call fcn.1002d520
mov eax, dword [ebp + 0x1c]
add esp, 0xc
push 0x10
add eax, 0x7f
lea ecx, [ebp - 0x24]
call fcn.100111b0
add esp, 4
jmp case.0x10016e20.24569
dec edx
mov bl, 0x89
adc ebx, dword [edx - 0x75]
inc ebp
sbb al, 0x6a
add al, 0x68
in eax, dx
in eax, dx
add dl, byte [eax]
push eax
call fcn.10021180
add esp, 0xc
test eax, eax
je 0x10016cbb
mov eax, 0x1766
cmp eax, eax
je 0x10016f05
add eax, 0x36
cmp eax, 0x1766
jbe 0x10016cab
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x5c]
push edx
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0x6c], 0x3072760c
mov dword [ebp - 0x68], 0x1c8f99f0
mov dword [ebp - 0x64], 0x2828246
mov dword [ebp - 0x60], 0x4cbeacfa
call fcn.1002d520
add esp, 0xc
jmp case.0x10016e20.24569
mov eax, dword [ebp + 0x1c]
push 8
add eax, 0x9c
lea ecx, [ebp - 0x3c]
call fcn.100111b0
add esp, 4
push 2
push 0x3d
lea eax, [ebp - 0x4c]
call fcn.10017bd0
add esp, 8
jmp case.0x10016e20.24569
cmp ecx, 0x5c37
ja 0x10016e0a
je 0x10016f17
lea eax, [ecx - 0x5be2]
cmp eax, 0x44
ja case.0x10016e20.24569
movzx ecx, byte [eax + 0x10016ff8]
jmp dword [ecx*4 + 0x10016fe0]
pop ecx
adc ch, byte [ebx + 0x680ad3]
add byte [eax + 0x6802], al
add byte [eax], ah
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x24]
push 1
push eax
mov ecx, eax
push ecx
call fcn.10004490
xor eax, eax
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x9b], eax
mov dword [ebp - 0x97], eax
mov dword [ebp - 0x93], eax
mov word [ebp - 0x8f], ax
mov byte [ebp - 0x8d], al
push edx
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x9c]
push ecx
mov byte [ebp - 0x9c], 0
call fcn.1002d520
add esp, 0x24
jmp case.0x10016e20.24569
mov eax, dword [esi]
push 0x2800000
push 0x20000000
lea edx, [ebp - 0x5c]
push edx
shr eax, 4
push eax
mov eax, dword [ebp + 0x18]
push eax
push eax
call fcn.10004490
add esp, 0x18
jmp case.0x10016e20.24569
nop
and al, 1
dec esp
or ch, byte [edx + 0x3d]
call fcn.1000ee90
add esp, 4
jmp case.0x10016e20.24569
push edi
push es
push ss
ljmp 0x8d16
lea eax, [ecx - 0x5ff8]
cmp eax, 0x33
ja case.0x10016e20.24569
movzx edx, byte [eax + 0x10017054]
jmp dword [edx*4 + 0x10017040]
mov eax, 0x29e0
cmp eax, eax
je 0x10016f25
add eax, 0x5b
cmp eax, 0x29e0
jbe 0x10016e2e
adc eax, 0x7b4d79d9
add dword [esi], 0x455
jmp case.0x10016e20.24569
cmp dword [esi], 0
jne case.0x10016e20.24569
mov ecx, 0x51b4
mov eax, ecx
sub eax, 0x51b4
je 0x10016e71
sub eax, 0x37
jne 0x10016e75
rcr edi, 0x84
lds esi, [ebp + 0x5ff8458b]
mov eax, dword [ebp - 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov byte [ebp - 8], 0
add ecx, 0x37
cmp ecx, 0x51eb
jbe 0x10016e55
jmp case.0x10016e20.24569
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x26]
push ecx
lea edx, [ebp - 0x2c]
push edx
mov dword [ebp - 0x2c], 0xffffff00
mov word [ebp - 0x28], 0xff
call fcn.1002d520
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x1c]
add esp, 0xc
push 6
push ecx
lea edx, [ebp - 0x10]
push edx
push eax
call fcn.10017ba0
add esp, 0x10
mov dword [esi], eax
mov ecx, dword [ebp - 0x74]
add ecx, 0x11
mov dword [ebp - 0x74], ecx
cmp ecx, dword [ebp - 0x8c]
jbe 0x10016860
mov eax, dword [ebp - 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0x20
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0x1d
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x78]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
inc ebx
invalid
cmp ecx, dword [edi - 0x1b]
xchg esi, eax
xchg esi, eax
mov eax, dword [ebp - 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
dec esp
push eax
out dx, eax
ja 0x10016f68
mov byte [ebp - 8], 1
mov eax, dword [ebp - 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add eax, 0x5050505
add eax, 84215045
add al, byte [84215045]
add eax, 84215045
add eax, 84215045
add eax, 84215043
add eax, 84215045
add eax, 84215045
add eax, -1929116411
dec ecx
add ah, bh
imul eax, dword [ecx], 0x169d710
adc byte [ecx], bh
push 1
adc byte [0xf110016a], al
outsb dx, byte [esi]
add dword [eax], edx
lea ebp, [edx + 1]
adc byte [eax], al
add eax, 0x5050505
add eax, 84215045
add dword [84215045], eax
add eax, 84215045
add al, byte [84215045]
add eax, 84215045
add eax, dword [84215045]
add eax, 84215045
add al, 141
dec ecx
add dh, dl
insd dword es:[edi], dx
add dword [eax], edx
dec eax
insd dword es:[edi], dx
add dword [eax], edx
ljmp 0x16d