Function at 0x1002c5f5
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [ebp + 0x10]
push ebx
lea edx, [eax + 0x9d4]
push esi
mov ecx, eax
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
cmp eax, edx
ja case.0x1002cb94.85
mov esi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x24]
cmp ecx, 0x2b1e
ja 0x1002cc20
je 0x1002c743
cmp ecx, 0xa31
je 0x1002c730
cmp ecx, 0xb0f
je 0x1002c668
cmp ecx, 0x10c9
jne 0x1002cf43
sal eax, 1
adc ah, byte [edx]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
inc eax
cmp eax, 0x3d
ja case.0x1002c50f.1
movzx ecx, byte [eax + 0x1002cfa0]
jmp dword [ecx*4 + 0x1002cf8c]
mov edi, 0x3b17
mov eax, edi
sub eax, 0x3b17
je 0x1002c52f
sub eax, 0x46
je case.0x1002cb94.85
jmp 0x1002c54c
push 0x1d
mov eax, esi
call fcn.1002b7a0
mov ecx, dword [ebp + 0xc]
add esp, 4
mov eax, esi
call fcn.10021b90
movzx edx, al
mov dword [esp + 0xc], edx
add edi, 0x46
cmp edi, 0x3b5d
jbe 0x1002c51b
mov edi, 0x3005
mov eax, edi
sub eax, 0x3005
je 0x1002c570
sub eax, 0x12
je case.0x1002cb94.85
jmp 0x1002c592
xchg ecx, eax
or eax, dword [edi - 0x63]
sub al, 0x6a
pop ds
mov eax, esi
call fcn.1002b7a0
mov ecx, dword [ebp + 0xc]
add esp, 4
mov eax, esi
call fcn.10021b90
movzx eax, al
mov dword [esp + 0xc], eax
add edi, 0x12
cmp edi, 0x3017
jbe 0x1002c55c
mov edi, 0x73f
mov eax, edi
sub eax, 0x73f
je 0x1002c5b6
sub eax, 0x1c
je case.0x1002cb94.85
jmp 0x1002c5c7
mov ecx, dword [ebp + 0xc]
push ecx
push esi
call fcn.100346a0
add esp, 8
mov dword [esp + 0xc], eax
add edi, 0x1c
cmp edi, 0x75b
jbe 0x1002c5a2
xor edi, edi
cmp edi, 0x54
ja case.0x1002c5e0.1
movzx edx, byte [edi + 0x1002cff4]
jmp dword [edx*4 + 0x1002cfe0]
hlt
push 0
mov eax, esi
call fcn.1002b7a0
add esp, 4
jmp case.0x1002c5e0.1
jb 0x1002c5dc
jg 0x1002c5c0
lcall 2, 0xc2444c7
add byte [eax], al
jmp case.0x1002c5e0.1
push 0xe
push esi
call fcn.1003afd0
add esp, 8
add edi, 0x1c
lea eax, [edi + 0x2f44]
cmp eax, 0x2f98
jbe 0x1002c5d4
mov edi, 0x69d
mov eax, edi
sub eax, 0x69d
je 0x1002c642
sub eax, 0x37
jne 0x1002c658
or dword [esi], eax
push es
jbe 0x1002c633
jno 0x1002c5c3
inc esp
and al, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xa556ef63
mov ecx, dword [ebp + 0xc]
mov eax, esi
call fcn.10021b90
movzx ecx, al
mov dword [esp + 0xc], ecx
add edi, 0x37
cmp edi, 0x6d4
jbe 0x1002c624
jmp 0x1002cf43
mov edx, dword [esi]
cmp byte [edx + 1], 0x2f
jne 0x1002c6a1
mov ecx, 0x458e
mov eax, ecx
sub eax, 0x458e
je 0x1002c68e
sub eax, 0x2f
jne 0x1002c691
mov ecx, 0x301a28cf
add dword [esi + 4], 0xfffffffd
jmp 0x1002c691
add dword [esi], 2
add ecx, 0x2f
cmp ecx, 0x45bd
jbe 0x1002c675
jmp 0x1002cf43
mov ecx, 0x289f
mov eax, ecx
sub eax, 0x289f
je 0x1002c711
sub eax, 0x23
jne 0x1002c71c
adc ecx, dword [edx - 0x748ae317]
mov eax, dword ds:[esi + 4]
add eax, edi
cmp edi, eax
je 0x1002c70a
movsx ecx, byte [edi]
push ecx
call fcn.1003e7b1
add esp, 4
test eax, eax
jne 0x1002c6d9
cmp byte [edi], 0x2f
jne 0x1002c700
mov ecx, 0x602a
mov eax, ecx
sub eax, 0x602a
je 0x1002c6ee
sub eax, 0x3f
je 0x1002c70a
jmp 0x1002c6f5
mov edx, edi
sub edx, dword [esi]
mov dword [esi + 4], edx
add ecx, 0x3f
cmp ecx, 0x6069
jbe 0x1002c6de
mov eax, dword [esi + 4]
add eax, dword [esi]
inc edi
cmp edi, eax
jne 0x1002c6c4
mov ecx, 0x28c2
jmp 0x1002c71c
add ch, byte [edi - 0x19fe87]
push es
add dword [esi + 4], 0xfffffffe
add ecx, 0x23
cmp ecx, 0x28c2
jbe 0x1002c6a6
stc
ret 0x28
jmp 0x1002cf43
jb 0x1002c6e0
outsb dx, byte [esi]
cmp ebx, dword [ebx + eax*4 - 0x7bf0ffc2]
in eax, 7
add byte [eax], al
jmp 0x1002cf43
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
cmp eax, 4
jne 0x1002c78f
mov edi, 0x15bd
mov eax, edi
sub eax, 0x15bd
je 0x1002c770
sub eax, 0x17
jne 0x1002c77f
add dword [ecx], edx
jbe 0x1002c720
cwde
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov eax, esi
call fcn.100323b0
mov byte [esp + 0xc], 1
add edi, 0x17
cmp edi, 0x15d4
jbe 0x1002c752
jmp 0x1002cf43
test eax, eax
jne 0x1002c7d1
mov esi, 0x41a4
mov eax, esi
sub eax, 0x41a4
je 0x1002c7ac
sub eax, 0x26
je 0x1002cbf1
jmp 0x1002c7be
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, edi
call fcn.10030df0
call fcn.10032800
add esi, 0x26
cmp esi, 0x41ca
jbe 0x1002c798
mov esi, dword [ebp + 0x18]
jmp 0x1002cf43
cmp eax, 3
jne 0x1002c81b
mov edi, 0x1ad
mov eax, edi
sub eax, 0x1ad
je 0x1002c7ef
sub eax, 0x3e
je case.0x1002cb94.85
jmp 0x1002c80b
mov edx, dword [ebp + 0x14]
push edx
push esi
call fcn.10024f50
add esp, 4
push eax
push esi
call fcn.1002ae90
add esp, 0xc
mov byte [esp + 0xc], 1
add edi, 0x3e
cmp edi, 0x1eb
jbe 0x1002c7db
jmp 0x1002cf43
push 0
mov edi, ecx
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002c84a
mov eax, 0x617
cmp eax, eax
je 0x1002cf63
add eax, 0x2f
cmp eax, 0x617
jbe 0x1002c835
jmp 0x1002cf43
push 0x96
push 4
push 0x7b
push 0x7e
push 0x8b
push 3
push 1
mov eax, edi
call fcn.1000b260
add esp, 0x1c
test al, al
je 0x1002c8c1
xor edi, edi
mov edi, edi
cmp edi, 0x42
ja case.0x1002c87c.1
movzx eax, byte [edi + 0x1002d060]
jmp dword [eax*4 + 0x1002d04c]
mov eax, dword [ebp + 0x14]
mov ecx, esi
call fcn.1002b790
jmp case.0x1002c87c.1
pop ds
push 0xffffffffffffffd8
aad 0xa2
mov ecx, esi
call fcn.1002bb40
mov byte [esp + 0xc], 1
jmp case.0x1002c87c.1
push esi
call fcn.10013b50
add esp, 4
add edi, 0x16
lea ecx, [edi + 0x333d]
cmp ecx, 0x337f
jbe 0x1002c870
jmp 0x1002cf43
push 5
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002c91c
mov edi, 0x2c0f
mov eax, edi
sub eax, 0x2c0f
je 0x1002c8f9
sub eax, 0x51
je 0x1002c8f0
sub eax, 0x51
je 0x1002ca05
jmp 0x1002c90c
mov ecx, esi
call fcn.1002bb40
jmp 0x1002c90c
mov eax, dword [ebp + 0x14]
mov ecx, esi
call fcn.1002b790
push esi
call fcn.10013b50
add esp, 4
add edi, 0x51
cmp edi, 0x2cb1
jbe 0x1002c8d7
jmp 0x1002cf43
push 2
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002c97a
mov esi, 0x62fe
mov eax, esi
sub eax, 0x62fe
je 0x1002c957
sub eax, 0xc
je 0x1002c94b
sub eax, 0xc
je case.0x1002cb94.85
jmp 0x1002c967
push cs
xchg dword [esi], esi
or dword [ebp + 0xc2444c6], esp
add ebx, ebp
adc byte [ebx + 0x4d8b147d], cl
sbb byte [edx + 2], ch
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
push 2
call fcn.10039d90
add esp, 4
add esi, 0xc
cmp esi, 0x6316
jbe 0x1002c932
mov esi, dword [ebp + 0x18]
jmp 0x1002cf43
push 0x96
push 6
push 0x82
push 1
mov eax, edi
call fcn.1000b260
add esp, 0x10
test al, al
je 0x1002c9d7
mov esi, 0x66f4
mov eax, esi
sub eax, 0x66f4
je 0x1002c9af
sub eax, 0x64
je case.0x1002cb94.85
jmp 0x1002c9c4
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
push 4
call fcn.10039d90
add esp, 4
mov byte [esp + 0xc], 1
add esi, 0x64
cmp esi, 0x6758
jbe 0x1002c99b
mov esi, dword [ebp + 0x18]
jmp 0x1002cf43
push 8
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002ca3c
mov edi, 0x2857
mov eax, edi
sub eax, 0x2857
je 0x1002ca22
sub eax, 0xb
je 0x1002ca15
sub eax, 0xb
jne 0x1002ca2c
stosd dword es:[edi], eax
aas
out 0x4e, eax
mov byte [esp + 0xc], 1
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 4
push esi
call fcn.100225f0
add esp, 8
jmp 0x1002ca2c
mov eax, dword [ebp + 0x14]
mov ecx, esi
call fcn.1002b790
add edi, 0xb
cmp edi, 0x286d
jbe 0x1002c9ed
jmp 0x1002cf43
push 7
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002ca8e
mov esi, 0x772d
mov eax, esi
sub eax, 0x772d
je 0x1002ca66
sub eax, 0x59
je case.0x1002cb94.85
jmp 0x1002ca7b
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
push 5
call fcn.10039d90
add esp, 4
mov byte [esp + 0xc], 1
add esi, 0x59
cmp esi, 0x7786
jbe 0x1002ca52
mov esi, dword [ebp + 0x18]
jmp 0x1002cf43
push 1
push 0
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002cae6
xor edi, edi
cmp edi, 0x78
ja case.0x1002caad.1
movzx edx, byte [edi + 0x1002d0b8]
jmp dword [edx*4 + 0x1002d0a4]
push esi
call fcn.10013b50
add esp, 4
jmp case.0x1002caad.1
mov byte [esp + 0xc], 1
jmp case.0x1002caad.1
push 5
push esi
call fcn.100225f0
add esp, 8
inc dword [ebx - 0x387cf73c]
sbb byte [ebp + 0xf3687], cl
add byte [0xfae], bh
add edi, 0x18
lea eax, [edi + 0xf36]
cmp eax, 0xfae
jbe 0x1002caa1
jmp 0x1002cf43
push 1
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
je 0x1002cb55
mov esi, 0x713
mov eax, esi
sub eax, 0x713
je 0x1002cb2b
sub eax, 0x2a
je 0x1002cb1f
sub eax, 0x2a
jne 0x1002cb42
jns 0x1002cb37
insd dword es:[edi], dx
pop ebp
out dx, eax
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esp
jno 0x1002cacd
pop ebx
into
mov byte [esp + 0xc], 0
jmp 0x1002cb42
insb byte es:[edi], dx
cwde
out 0xaa, eax
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, edi
call fcn.10030df0
call fcn.10032800
iretd
add esi, 0x2a
cmp esi, 0x767
jbe 0x1002cafc
mov esi, dword [ebp + 0x18]
jmp 0x1002cf43
push 1
push 1
push edi
call fcn.10035b00
add esp, 0xc
test al, al
jne 0x1002cbd9
cmp dword [edi], 2
jne 0x1002cb86
push 0x96
push 0x42
push 0
push 0xa
push 0
mov eax, edi
call fcn.1000b260
add esp, 0x14
test al, al
je 0x1002cbd9
xor edi, edi
cmp edi, 0x55
ja case.0x1002cb94.1
movzx ecx, byte [edi + 0x1002d148]
jmp dword [ecx*4 + 0x1002d134]
push esi
call fcn.10013b50
add esp, 4
jmp case.0x1002cb94.1
push 5
push esi
call fcn.100225f0
mov edx, dword [esi + 0xc]
add esp, 8
mov byte [edx + 0x34], 1
jmp case.0x1002cb94.1
invalid
add edi, 0x11
lea eax, [edi + 0x2e86]
cmp eax, 0x2edb
jbe 0x1002cb88
jmp 0x1002cf43
mov edi, 0x1e37
mov eax, edi
sub eax, 0x1e37
je 0x1002cc01
sub eax, 0x64
jne 0x1002cc10
fcom qword [edx]
sub eax, 0x44c661c0
and al, 0xc
add byte [ebx + 0x5f0c2444], cl
mov byte [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xchg ecx, eax
outsb dx, byte ss:[esi]
pop esp
push 0xffffffffffffff8b
inc ebp
adc al, 0x8b
into
call fcn.10030df0
add edi, 0x64
cmp edi, 0x1e9b
jbe 0x1002cbde
jmp 0x1002cf43
mov eax, ecx
sub eax, 0x2b68
je 0x1002cf07
sub eax, 0x55a
je 0x1002cec2
sub eax, 0x4a
jne 0x1002cf43
mov ecx, dword [0x10070c20]
test ecx, ecx
je 0x1002ceb4
mov eax, 0x6ced
mov dword [esp + 0x1c], eax
sub eax, 0x6ced
je 0x1002ce8e
sub eax, 0x47
je 0x1002cd88
sub eax, 0x47
jne 0x1002ce99
mov edx, 0x1006eb80
mov dword [esp + 0x10], edx
mov edi, edi
mov ecx, 0x2a55
mov dword [esp + 0x18], ecx
mov eax, ecx
sub eax, 0x2a55
je 0x1002cd25
sub eax, 6
jne 0x1002cd53
mov edx, dword [esp + 0x10]
add edx, 0x1400
lea edi, [eax + 3]
lea esp, [esp]
mov ecx, 0x7e81
mov eax, ecx
sub eax, 0x7e81
je 0x1002ccf6
sub eax, 0x61
jne 0x1002cd07
mov eax, ebx
shl eax, 0x10
mov esi, ebx
and esi, 0xff00
add eax, esi
mov esi, ebx
shr esi, 8
and esi, 0xff00
shl eax, 8
add eax, esi
mov esi, ebx
shr esi, 0x18
add eax, esi
mov esi, dword [ebp + 0x18]
mov dword [edx - 0x1000], ebx
mov dword [edx], eax
jmp 0x1002cd07
mov eax, ebx
and eax, 0xff
shr ebx, 8
xor ebx, dword [eax*4 + 0x1006eb80]
add ecx, 0x61
cmp ecx, 0x7ee2
jbe 0x1002ccb5
add edx, 0x400
dec edi
jne 0x1002ccb0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x1002cd53
mov ebx, dword [edx]
mov eax, ebx
shl eax, 0x10
mov edi, ebx
and edi, 0xff00
add eax, edi
mov edi, ebx
shr edi, 8
and edi, 0xff00
shl eax, 8
add eax, edi
mov edi, ebx
shr edi, 0x18
add eax, edi
mov dword [edx + 0x1000], eax
add ecx, 6
mov dword [esp + 0x18], ecx
cmp ecx, 0x2a5b
jbe 0x1002cc89
add edx, 4
mov dword [esp + 0x10], edx
cmp edx, 0x1006ef80
jl 0x1002cc80
mov dword [0x1006d550], 0
jmp 0x1002ce99
xor eax, eax
movzx edx, byte [eax + 0x10070be1]
movzx edi, byte [eax + 0x10070be0]
mov ecx, 0x1f
sub ecx, edx
mov edx, 1
shl edx, cl
mov ecx, 0x1f
sub ecx, edi
mov edi, 1
shl edi, cl
add eax, 2
or edx, edi
or dword [esp + 0x14], edx
cmp eax, 0xe
jl 0x1002cd8a
mov edi, dword [esp + 0x14]
xor edx, edx
jmp 0x1002cdd0
mov ecx, 0x6db8
jmp 0x1002cde0
mov eax, ecx
sub eax, 0x6db8
je 0x1002ce6e
sub eax, 0x3f
jne 0x1002ce70
test bl, 1
je 0x1002ce01
shr ebx, 1
xor ebx, edi
jmp 0x1002ce03
shr ebx, 1
test bl, 1
je 0x1002ce0e
shr ebx, 1
xor ebx, edi
jmp 0x1002ce10
shr ebx, 1
test bl, 1
je 0x1002ce1b
shr ebx, 1
xor ebx, edi
jmp 0x1002ce1d
shr ebx, 1
test bl, 1
je 0x1002ce28
shr ebx, 1
xor ebx, edi
jmp 0x1002ce2a
shr ebx, 1
test bl, 1
je 0x1002ce35
shr ebx, 1
xor ebx, edi
jmp 0x1002ce37
shr ebx, 1
test bl, 1
je 0x1002ce42
shr ebx, 1
xor ebx, edi
jmp 0x1002ce44
shr ebx, 1
test bl, 1
je 0x1002ce4f
shr ebx, 1
xor ebx, edi
jmp 0x1002ce51
shr ebx, 1
test bl, 1
je 0x1002ce63
shr ebx, 1
xor ebx, edi
mov dword [edx*4 + 0x1006eb80], ebx
jmp 0x1002ce70
shr ebx, 1
mov dword [edx*4 + 0x1006eb80], ebx
jmp 0x1002ce70
mov ebx, edx
add ecx, 0x3f
cmp ecx, 0x6df7
jbe 0x1002cde0
inc edx
cmp edx, 0x100
jl 0x1002cdd0
jmp 0x1002ce99
xor eax, eax
mov dword [0x10070c20], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add eax, 0x47
mov dword [esp + 0x1c], eax
cmp eax, 0x6d7b
jbe 0x1002cc58
jmp 0x1002cf43
mov eax, dword [0x1006d550]
test eax, eax
jne 0x1002ceb4
jmp 0x1002cf43
lea edx, [esp + 0x36]
mov dword [esp + 0x1c], 1
mov ecx, dword [esp + 0x1c]
push edx
lea eax, [esp + 0x2c]
push eax
mov dword [0x10070c20], ecx
mov dword [esp + 0x30], 0x4020100
mov dword [esp + 0x34], 0xa080705
mov dword [esp + 0x38], 0x16100c0b
mov word [esp + 0x3c], 0x1a17
call fcn.1003d8a0
add esp, 8
jmp 0x1002cf43
mov ecx, 0x6aec
lea esp, [esp]
add byte [ebx + 0x6aec2dc1], cl
add byte [eax], al
mov eax, ecx
sub eax, 0x6aec
je 0x1002cf2e
sub eax, 0x60
jne 0x1002cf38
cli
ja 0x1002cf0f
xchg dword [0xc24448b], ebp
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
das
push ebx
xor al, byte [edx + 0x2444c69e]
or al, 1
add ecx, 0x60
cmp ecx, 0x6b4c
jbe 0x1002cf10
mov ecx, dword [esp + 0x20]
add ecx, 0x4a
mov dword [esp + 0x20], ecx
cmp ecx, dword [esp + 0x24]
jbe 0x1002c4be
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push esi
call fcn.1000be00
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sbb ebx, ebx
fnstcw word [edi + 0x18]
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret