Function at 0x3010fa44
Capabilities:
Authenticate hmac
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [section..cdata]
push ebx
mov dword [ebp - 4], eax
push esi
movzx esi, byte [ebp + 0x24]
push edi
xor edi, edi
mov eax, esi
inc edi
and eax, edi
mov dword [ebp - 0x274], eax
mov eax, esi
and eax, 2
mov dword [ebp - 0x27c], eax
mov eax, esi
and eax, 4
mov dword [ebp - 0x280], eax
movzx eax, word [ebp + 0x18]
push eax
mov dword [ebp - 0x270], 0x2a
call fcn.30057cb3
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x284], eax
jne 0x3010faab
test byte [ebp + 0x24], 8
mov dword [ebp - 0x260], ecx
je 0x3010fab1
mov dword [ebp - 0x260], edi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
add eax, eax
mov dword [ebp - 0x278], eax
add eax, edx
and esi, 0x20
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x264], esi
mov word [ebp - 0x26c], cx
mov word [ebp - 0x26a], cx
mov word [ebp - 0x268], cx
je 0x3010faff
lea eax, [ebp - 0x26c]
push eax
push ecx
push ecx
mov edi, esp
mov esi, ebx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
call fcn.3010e279
mov edi, dword [ebp + 0x20]
xor esi, esi
cmp dword [ebp - 0x260], esi
je 0x3010fb17
cmp edi, esi
jne 0x3010fb17
xor eax, eax
jmp 0x3011086a
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x58]
push eax
push esi
call fcn.3010c0d1
cmp dword [ebp - 0x280], esi
mov eax, dword [ebp + 0x10]
push 0x3f
mov dword [ebp - 0x270], eax
mov dword [ebp + 8], esi
pop ecx
je 0x3010fb76
cmp dword [ebp + 0xc], 0x50
jne 0x3010fb51
mov eax, dword [ebp + 0x28]
or byte [eax + 0x34], 0x10
jmp case.0x3010fb91.72
cmp dword [ebp + 0xc], ecx
jl 0x3010fb63
cmp dword [ebp + 0xc], 0x41
jg 0x3010fb63
mov dword [ebp + 0xc], 0x42
cmp dword [ebp + 0xc], 0x3c
jl 0x3010fb76
cmp dword [ebp + 0xc], 0x3e
jg 0x3010fb76
mov dword [ebp + 0xc], 0x27
mov eax, dword [ebp + 0xc]
add eax, 0xffffffea
cmp eax, 0x4d
ja case.0x3010fb91.72
movzx eax, byte [eax + 0x30110948]
mov esi, 0xfff
jmp dword [eax*4 + 0x3011087c]
mov eax, dword [ebp + 0x10]
cmp word [eax - 2], 0x2e
mov esi, dword [ebp + 0x28]
jne 0x3010fbc2
mov eax, dword [esi + 0xc]
mov ax, word [eax]
cmp ax, 0x2e
je 0x3010fbbd
cmp ax, 0x5c
je 0x3010fbbd
cmp ax, 0x2f
jne 0x3010fbc2
xor edi, edi
inc edi
jmp 0x3010fbc4
xor edi, edi
mov eax, dword [esi + 8]
add eax, eax
cmp dword [ebp - 0x278], eax
jge 0x3010fbd7
mov eax, dword [ebp - 0x278]
push eax
push dword [esi + 0xc]
push dword [ebp + 0x10]
call sub.MSVCRT.dll_memmove
mov ecx, dword [ebp + 0x10]
mov eax, dword [esi + 8]
add esp, 0xc
test edi, edi
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
je case.0x3010fb91.72
sub dword [ebp + 0x10], 2
jmp case.0x3010fb91.72
mov dword [ebp + 8], 2
xor eax, eax
cmp dword [ebp - 0x260], eax
je 0x3010fc35
cmp dword [ebp - 0x274], eax
jne 0x3010fccd
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
push dword [edi + 8]
jmp 0x3011054b
cmp dword [ebp + 0xc], 0x53
jne 0x3010fc57
push 0xe50
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov al, byte [ebx]
and eax, 0xf
jmp 0x3010fed2
cmp dword [ebp + 0xc], 0x5e
jne 0x3010fc7f
cmp dword [ebp - 0x264], eax
push 0x966
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
je 0x3010fc4d
mov eax, dword [ebp - 0x26c]
jmp 0x3010fc4f
push dword [ebp + 8]
cmp dword [ebp - 0x264], eax
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
je 0x3010fc9c
mov eax, dword [ebp - 0x26c]
jmp 0x3010fc9e
mov al, byte [ebx]
and eax, 0xf
push eax
jmp 0x3011054b
cmp dword [ebp - 0x260], 0
je 0x3010fcd5
cmp dword [ebp - 0x27c], 0
je case.0x3010fb91.26
add edi, 0xa4
jmp 0x30110433
cmp dword [ebp - 0x260], 0
je 0x3010fcd5
add edi, 0x54
jmp 0x30110433
mov ax, word [ebx + 4]
and ax, 0xfff
je 0x3010fd17
cmp dword [ebp - 0x264], 0
je 0x3010fd17
mov eax, dword [ebp - 0x26c]
push dword [ebp + 0x14]
and eax, 0xf
cmp word [ebp + 0x18], 0x439
push dword [ebp + 0x10]
jne 0x3010fd0b
push dword [eax*4 + 0x300212d8]
jmp 0x3011043a
push dword [eax*4 + 0x300212a8]
jmp 0x3011043a
test ax, ax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
je 0x301103d8
mov al, byte [ebx]
xor ecx, ecx
and eax, 0xf
cmp dword [ebp + 0xc], 0x20
setne cl
dec ecx
and ecx, 0xc
add ecx, 0x38
lea eax, [eax + ecx - 1]
jmp 0x3010ff86
mov dword [ebp + 8], 2
xor ecx, ecx
cmp dword [ebp - 0x260], ecx
je 0x3010fe18
cmp dword [ebp - 0x274], ecx
je 0x3010fd86
push dword [ebp + 0x14]
lea eax, [edi + 0xa4]
push dword [ebp + 0x10]
push eax
call fcn.30134d74
push dword [ebp + 0x10]
call fcn.30134cfe
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
jmp 0x3010fd9b
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
push dword [edi + 4]
call fcn.3010d76d
mov eax, dword [ebp + 0x18]
and ah, 3
cmp ax, 0xc
jne case.0x3010fb91.72
cmp dword [ebp + 8], 0
jne case.0x3010fb91.72
cmp dword [edi + 4], 1
jne case.0x3010fb91.72
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + 4]
cmp word [eax], 0x20
jne case.0x3010fb91.72
cmp word [eax + 2], 0x4d
jne case.0x3010fb91.72
cmp word [eax + 4], 0x4d
jne case.0x3010fb91.72
cmp word [eax + 6], 0x4d
jne case.0x3010fb91.72
cmp word [eax + 8], 0x4d
jne case.0x3010fb91.72
mov eax, dword [ebp + 0x10]
mov word [eax], 0x65
add dword [ebp + 0x10], 2
mov eax, dword [ebp + 0x10]
mov word [eax], 0x72
add dword [ebp + 0x10], 2
jmp case.0x3010fb91.72
mov esi, dword [ebp + 0x28]
mov eax, dword [ebp + 0xc]
or byte [esi + 0x34], 4
cmp eax, 0x54
je 0x3010feb6
cmp eax, 0x55
je 0x3010feb6
cmp eax, 0x5f
je 0x3010fe94
cmp eax, 0x60
je 0x3010fe94
cmp dword [ebp - 0x264], ecx
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
je 0x3010fe64
mov eax, dword [ebp - 0x26a]
shr eax, 8
and eax, 0x1f
jmp 0x3010fca1
mov ax, word [ebx + 2]
shr eax, 8
and eax, 0x1f
push eax
call fcn.3010d76d
mov al, byte [esi + 0x34]
push dword [ebp + 0x18]
shr eax, 2
and eax, 1
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0xc]
push dword [esi + 4]
jmp 0x3010ffb6
cmp dword [ebp - 0x264], ecx
push 0x966
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
je 0x3010fec8
mov eax, dword [ebp - 0x26a]
jmp 0x3010fecc
push 0xe50
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov ax, word [ebx + 2]
shr eax, 8
and eax, 0x1f
push eax
jmp 0x3011049b
cmp dword [ebp - 0x260], 0
je 0x3010feff
cmp dword [ebp - 0x27c], 0
jne 0x3011042d
cmp dword [ebp - 0x260], 0
je 0x3010feff
add edi, 0x18
jmp 0x30110433
cmp dword [ebp - 0x264], 0
mov esi, 0xfff
je 0x3010ff4f
test word [ebx + 4], si
je 0x301103d2
cmp word [ebp + 0x18], 0x439
je 0x3010ff4f
mov eax, dword [ebp - 0x26a]
push dword [ebp + 0x14]
shr eax, 5
push dword [ebp + 0x10]
and eax, 7
cmp dword [ebp + 0xc], 0x24
jne 0x3010ff43
push dword [eax*4 + 0x30021328]
jmp 0x3011043a
push dword [eax*4 + 0x3002130c]
jmp 0x3011043a
test word [ebx + 4], si
je 0x301103d2
mov ax, word [ebx + 2]
test al, 0xe0
je 0x3010ff69
shr eax, 5
and eax, 7
jmp 0x3010ff6c
push 7
pop eax
push dword [ebp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xc], 0x24
push dword [ebp + 0x10]
setne cl
dec ecx
and ecx, 7
add ecx, 0x2a
lea eax, [ecx + eax - 1]
push eax
push dword [ebp + 0x18]
call fcn.3010f06e
mov ecx, dword [ebp + 0x10]
push dword [ebp + 0x18]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x28]
mov cl, byte [eax + 0x34]
shr ecx, 2
and ecx, 1
push ecx
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp + 0x10]
push ecx
push dword [ebp + 0xc]
push dword [eax + 4]
push dword [ebp + 0x14]
push dword [ebp - 0x270]
push ebx
call fcn.3010d953
jmp case.0x3010fb91.72
xor ecx, ecx
cmp dword [ebp - 0x260], ecx
je 0x3010fffb
cmp dword [ebp - 0x274], ecx
jne case.0x3010fb91.32
push 2
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
mov eax, dword [edi + 0xc]
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x3011054b
mov bx, word [ebx + 4]
mov esi, 0xfff
mov eax, ebx
and eax, esi
je 0x301100a9
test byte [ebp + 0x24], 0x10
je 0x3011001e
and ebx, esi
add ebx, 0x21f
jmp 0x30110031
cmp ax, 0x76b
jne 0x30110029
push 0x63
pop eax
jmp 0x30110033
and ebx, esi
sub ebx, 0x76c
mov eax, ebx
cmp dword [ebp + 0xc], 0x51
jne 0x30110056
push 0xe50
push 2
push dword [ebp - 0x25c]
lea ecx, [ebp + 0x10]
push ecx
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x3011049b
cmp dword [ebp + 0xc], 0x5c
jne 0x3011007f
cmp dword [ebp - 0x264], ecx
push 0x966
push 2
push dword [ebp - 0x25c]
je 0x30110046
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x268]
and eax, esi
jmp 0x3011004a
cmp dword [ebp - 0x264], ecx
push 2
push dword [ebp - 0x25c]
je 0x301100a0
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x268]
and eax, esi
jmp 0x3010ffef
lea ecx, [ebp + 0x10]
push ecx
jmp 0x3010ffef
cmp dword [ebp + 0xc], 0x51
lea eax, [ebp + 0x10]
jne 0x301100c7
push 0xe50
push 2
push dword [ebp - 0x25c]
push eax
push 0
jmp 0x3011049b
cmp dword [ebp + 0xc], 0x5c
jne 0x301100d4
push 0x966
jmp 0x301100b7
push 2
push dword [ebp - 0x25c]
push eax
push 0
jmp 0x3011054b
cmp word [ebp + 0x1c], 0x404
je 0x301100fc
cmp word [ebp + 0x1c], 0xc04
je 0x301100fc
cmp word [ebp + 0x1c], 0x1404
jne 0x30110134
mov ax, word [ebx + 4]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
and eax, esi
sub eax, 0x777
cmp eax, 1
jge 0x30110119
push 0x300216d0
jmp 0x3011011e
push 0x300216c8
call fcn.30134d74
push dword [ebp + 0x10]
call fcn.30134cfe
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0xc], 0x3d
je case.0x3010fb91.48
mov bx, word [ebx + 4]
xor eax, eax
test si, bx
je 0x3011022f
cmp word [ebp + 0x1c], 0x804
je 0x3011021f
cmp word [ebp + 0x1c], 0x1004
je 0x3011021f
and ebx, esi
sub ebx, 0x777
jmp 0x30110221
cmp word [ebp + 0x1c], 0x404
je 0x3011018a
cmp word [ebp + 0x1c], 0xc04
je 0x3011018a
cmp word [ebp + 0x1c], 0x1404
jne 0x301101c2
mov ax, word [ebx + 4]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
and eax, esi
sub eax, 0x777
cmp eax, 1
jge 0x301101a7
push 0x300216e4
jmp 0x301101ac
push 0x300216d8
call fcn.30134d74
push dword [ebp + 0x10]
call fcn.30134cfe
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0xc], 0x3e
jne case.0x3010fb91.51
mov bx, word [ebx + 4]
xor eax, eax
test si, bx
je 0x30110201
cmp word [ebp + 0x1c], 0x804
je 0x301101f1
cmp word [ebp + 0x1c], 0x1004
je 0x301101f1
and ebx, esi
sub ebx, 0x777
jmp 0x301101f3
and ebx, esi
mov eax, ebx
cmp eax, 1
jge 0x30110201
xor ecx, ecx
inc ecx
sub ecx, eax
mov eax, ecx
push 1
push dword [ebp - 0x25c]
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.3010d76d
mov eax, dword [ebp + 0x10]
and word [eax], 0
jmp case.0x3010fb91.72
and ebx, esi
mov eax, ebx
cmp eax, 1
jge 0x3011022f
xor ecx, ecx
inc ecx
sub ecx, eax
mov eax, ecx
push dword [ebp + 0x1c]
lea ecx, [ebp + 0x10]
push dword [ebp - 0x25c]
push ecx
push eax
jmp 0x30110580
push dword [ebp + 0x1c]
mov bx, word [ebx + 4]
push dword [ebp - 0x25c]
mov esi, 0xfff
test si, bx
lea eax, [ebp + 0x10]
push eax
je 0x30110264
and ebx, esi
jmp 0x3011057f
push 0
jmp 0x30110580
push dword [ebp + 0x1c]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov al, byte [ebx]
and eax, 0xf
jmp 0x3011023c
push dword [ebp + 0x1c]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov ax, word [ebx + 2]
shr eax, 8
jmp 0x30110376
mov al, byte [ebx + 2]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
shr eax, 5
and eax, 7
push dword [eax*4 + 0x3002160c]
jmp 0x3011043a
mov al, byte [ebx + 2]
and eax, 0x1f
jne 0x301102c3
push 0xc
pop eax
jmp 0x3011022f
cmp eax, 0xc
jle 0x3011022f
sub eax, 0xc
jmp 0x3011022f
mov al, byte [ebx + 2]
and eax, 0x1f
cmp eax, 0xc
jl 0x301102ee
jle 0x301102e4
add eax, 0xfffffff4
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x4e0b
jmp 0x301102fd
test eax, eax
jne 0x301102f5
push 0xc
pop eax
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x4e0a
add dword [ebp + 0x10], 2
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp - 0x25c]
jae 0x3011022f
mov word [ecx], 0x5348
add dword [ebp + 0x10], 2
jmp 0x3011022f
mov al, byte [ebx + 2]
and eax, 0x1f
cmp eax, 0xc
jl 0x30110338
jle 0x3011032e
add eax, 0xfffffff4
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x4e0b
jmp 0x30110347
test eax, eax
jne 0x3011033f
push 0xc
pop eax
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x4e0a
add dword [ebp + 0x10], 2
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp - 0x25c]
jae 0x3011035f
mov word [ecx], 0x5348
add dword [ebp + 0x10], 2
push 1
jmp 0x30110771
push dword [ebp + 0x1c]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov al, byte [ebx + 2]
and eax, 0x1f
jmp 0x3011023c
push dword [ebp + 0x1c]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov ax, word [ebx]
shr eax, 4
and eax, ecx
jmp 0x3011023c
push dword [ebp + 0x1c]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x3011023c
mov bx, word [ebx]
mov eax, ebx
and eax, 0xf
jbe 0x301103d2
cmp ax, 0xd
jae 0x301103d2
push dword [ebp + 0x14]
and ebx, 0xf
push dword [ebp + 0x10]
push dword [ebx*4 + 0x300215d8]
jmp 0x3011043a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x30021c50
jmp 0x3011043a
mov al, byte [ebx + 2]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
shr eax, 5
and eax, 7
cmp dword [ebp + 0xc], 0x4d
jne 0x301103fd
push dword [eax*4 + 0x30021644]
jmp 0x3011043a
push dword [eax*4 + 0x30021628]
jmp 0x3011043a
mov dword [ebp + 8], 2
push ebx
call fcn.3010d901
test eax, eax
jge 0x30110559
xor ecx, ecx
cmp dword [ebp - 0x260], ecx
je 0x30110469
cmp dword [ebp - 0x274], ecx
je 0x30110455
add edi, 0x90
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
call fcn.30134d74
push dword [ebp + 0x10]
call fcn.30134cfe
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
jmp case.0x3010fb91.72
push 4
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
push dword [edi + 0xc]
jmp 0x3011054b
mov bx, word [ebx + 4]
mov esi, 0xfff
push 4
pop eax
and ebx, esi
test byte [ebp + 0x24], 0x10
je 0x30110483
add ebx, 0x21f
cmp dword [ebp + 0xc], 0x52
jne 0x301104a5
push 0xe50
push 4
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
push ebx
call fcn.3010e216
jmp case.0x3010fb91.72
cmp dword [ebp + 0xc], 0x5d
jne 0x301104d1
cmp dword [ebp - 0x264], ecx
push 0x966
push 4
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
je 0x3011049a
mov eax, dword [ebp - 0x268]
and eax, esi
jmp 0x3010fed2
cmp dword [ebp - 0x264], ecx
je 0x301104f2
push 4
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x268]
and eax, esi
jmp 0x3010fca1
mov edx, dword [ebp + 0x28]
test byte [edx + 0x34], 8
je 0x30110555
cmp word [ebp + 0x1c], 0x412
jne 0x3011050b
add ebx, 0x91d
jmp 0x3011053f
cmp ebx, ecx
je 0x30110521
sub ebx, 0x777
cmp ebx, 1
jge 0x30110521
xor ecx, ecx
inc ecx
sub ecx, ebx
mov ebx, ecx
cmp ebx, 0xa
jge 0x3011052b
xor eax, eax
inc eax
jmp 0x3011053f
cmp ebx, 0x64
jge 0x30110534
push 2
jmp 0x3011053e
cmp ebx, 0x3e8
jge 0x3011053f
push 3
pop eax
push eax
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
push ebx
call fcn.3010d76d
jmp case.0x3010fb91.72
push 4
jmp 0x30110540
push eax
call fcn.3010edab
mov bx, word [ebx + 4]
and ebx, 0xfff
sub ebx, eax
inc ebx
cmp dword [ebp + 0xc], 0x39
lea eax, [ebp + 0x10]
jne 0x3011058a
push dword [ebp + 0x1c]
push dword [ebp - 0x25c]
push eax
push ebx
call fcn.3010d832
jmp case.0x3010fb91.72
push dword [ebp + 8]
jmp 0x30110543
push ebx
call fcn.3010d901
test eax, eax
jl case.0x3010fb91.72
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call fcn.3010edc9
jmp 0x3011043f
push ebx
call fcn.3010d901
test eax, eax
jl case.0x3010fb91.72
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call fcn.3010edf4
mov ecx, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp + 0xc], 0x36
sete al
lea eax, [ecx + eax*2 + 2]
jmp 0x3011044d
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30021668
jae 0x301105f0
mov eax, 0x30021660
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
jmp 0x3011043a
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30021678
jae 0x301105f0
mov eax, 0x30021670
jmp 0x301105f0
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30021688
jae 0x301105f0
mov eax, 0x30021680
jmp 0x301105f0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x300216c0
jmp 0x30110668
cmp word [ebp + 0x1c], 0x804
je 0x3011068a
cmp word [ebp + 0x1c], 0x1004
je 0x3011068a
mov ax, word [ebx + 4]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
and eax, 0xfff
sub eax, 0x777
cmp eax, 1
jge 0x30110663
push 0x300216e4
jmp 0x30110668
push 0x300216d8
call fcn.30134d74
push dword [ebp + 0x10]
call fcn.30134cfe
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x28]
or byte [eax + 0x34], 8
jmp case.0x3010fb91.72
mov eax, dword [ebp + 0x28]
and byte [eax + 0x34], 0xf7
jmp case.0x3010fb91.72
mov dword [ebp + 8], 2
mov al, byte [ebx + 2]
and eax, 0x1f
cmp dword [ebp + 0xc], 0x57
jg 0x301106c2
test eax, eax
jne 0x301106ba
test word [ebx + 4], 0xfff
je 0x301106c2
push 0xc
pop eax
jmp 0x301106c2
cmp eax, 0xc
jle 0x301106c2
sub eax, 0xc
xor ecx, ecx
cmp dword [ebp + 8], 2
push 0xe50
sete cl
inc ecx
push ecx
push dword [ebp - 0x25c]
lea ecx, [ebp + 0x10]
push ecx
jmp 0x3010fed2
push 0xe50
jmp 0x3011070d
push 0xe50
jmp 0x3011072b
push 0x966
push 1
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
mov al, byte [ebx + 2]
jmp 0x3010fecf
push 0x966
push 2
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
mov ax, word [ebx]
shr eax, 4
and eax, ecx
jmp 0x3010fed2
push 0x966
push 2
push dword [ebp - 0x25c]
lea eax, [ebp + 0x10]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x3010fed2
mov dword [ebp + 8], 2
mov al, byte [ebx + 2]
and eax, 0x1f
cmp dword [ebp + 0xc], 0x29
jg 0x3011076e
test eax, eax
jne 0x30110766
test word [ebx + 4], 0xfff
je 0x3011076e
push 0xc
pop eax
jmp 0x3011076e
cmp eax, 0xc
jle 0x3011076e
sub eax, 0xc
push dword [ebp + 8]
push dword [ebp - 0x25c]
lea ecx, [ebp + 0x10]
push ecx
jmp 0x3010fca1
mov dword [ebp + 8], 2
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
mov ax, word [ebx]
shr eax, 4
and eax, ecx
jmp 0x3010fca1
mov dword [ebp + 8], 2
push dword [ebp + 8]
lea eax, [ebp + 0x10]
push dword [ebp - 0x25c]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x3010fca1
cmp dword [ebp - 0x284], 0
lea esi, [ebp - 0x258]
jne 0x301107ee
push 0x100
mov eax, esi
push eax
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
sbb eax, eax
add eax, 0x29
push eax
push dword [ebp + 0x18]
call fcn.3010f06e
jmp 0x3011080e
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
sbb eax, eax
neg eax
push eax
push dword [ebp + 0x18]
lea eax, [ebp - 0x258]
push 0x100
push eax
call fcn.3010df5c
mov edi, dword [ebp - 0x25c]
jmp 0x3011083b
mov ax, word [esi]
test ax, ax
je 0x30110840
cmp dword [ebp + 0xc], 0x2f
jne 0x3011082f
push 0
push dword [ebp + 0x18]
push eax
call fcn.3010bfa5
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
add dword [ebp + 0x10], 2
inc esi
inc esi
cmp dword [ebp + 0x10], edi
jb 0x30110816
lea eax, [ebp - 0x258]
push eax
call fcn.30134cfe
mov ecx, dword [ebp + 0x28]
test eax, eax
sete al
shl al, 4
xor al, byte [ecx + 0x34]
and al, 0x10
xor byte [ecx + 0x34], al
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp - 0x270]
sar eax, 1
mov ecx, dword [ebp - 4]
call fcn.30118d85
pop edi
pop esi
pop ebx
leave
ret 0x24