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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28c
mov eax, dword [0x30024a78]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp + 0x20]
push ebx
mov ebx, dword [ebp + 8]
push esi
movzx esi, byte [ebp + 0x24]
mov dword [ebp - 0x268], eax
mov eax, esi
and eax, 1
mov dword [ebp - 0x280], eax
mov eax, esi
and eax, 2
mov dword [ebp - 0x284], eax
mov eax, esi
and eax, 4
mov dword [ebp - 0x288], eax
movzx eax, word [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x28]
push eax
mov dword [ebp - 0x27c], edi
mov dword [ebp - 0x264], 0x2a
call fcn.3005075b
test eax, eax
mov dword [ebp - 0x28c], eax
jne 0x30107d8b
test byte [ebp + 0x24], 8
jne 0x30107d8b
and dword [ebp - 0x26c], eax
jmp 0x30107d95
mov dword [ebp - 0x26c], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
push 0
mov dword [ebp - 0x260], eax
pop eax
and esi, 0x20
mov dword [ebp - 0x270], esi
mov word [ebp - 0x278], ax
mov word [ebp - 0x276], ax
mov word [ebp - 0x274], ax
je 0x30107de5
lea eax, [ebp - 0x278]
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.3010658e
mov edi, dword [ebp - 0x27c]
cmp dword [ebp - 0x26c], 0
je 0x30107dfe
cmp dword [ebp - 0x268], 0
jne 0x30107dfe
xor eax, eax
jmp 0x30108c93
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x58]
push eax
xor esi, esi
push esi
call fcn.30104456
cmp dword [ebp - 0x288], esi
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x264], esi
je 0x30107e59
mov eax, dword [ebp + 0xc]
cmp eax, 0x50
jne 0x30107e3c
or byte [edi + 0x34], 0x10
jmp case.0x30107e74.72
lea ecx, [eax - 0x3f]
cmp ecx, 2
ja 0x30107e4a
push 0x42
pop eax
mov dword [ebp + 0xc], eax
add eax, 0xffffffc4
cmp eax, 2
ja 0x30107e59
mov dword [ebp + 0xc], 0x27
mov eax, dword [ebp + 0xc]
add eax, 0xffffffea
cmp eax, 0x4d
ja case.0x30107e74.72
movzx eax, byte [eax + 0x30108d70]
mov esi, 0xfff
jmp dword [eax*4 + 0x30108ca4]
mov eax, dword [ebp - 0x25c]
cmp word [eax - 2], 0x2e
jne 0x30107ea5
mov eax, dword [edi + 0xc]
movzx eax, word [eax]
cmp ax, 0x2e
je 0x30107ea0
cmp ax, 0x5c
je 0x30107ea0
cmp ax, 0x2f
jne 0x30107ea5
xor esi, esi
inc esi
jmp 0x30107ea7
xor esi, esi
mov eax, dword [edi + 8]
add eax, eax
push eax
push dword [edi + 0xc]
push dword [ebp - 0x25c]
call sub.MSVCR80.dll_memmove
mov ecx, dword [ebp - 0x25c]
mov eax, dword [edi + 8]
add esp, 0xc
test esi, esi
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
je case.0x30107e74.72
sub dword [ebp - 0x25c], 2
jmp case.0x30107e74.72
mov dword [ebp - 0x264], 2
xor eax, eax
cmp dword [ebp - 0x26c], eax
je 0x30107f34
cmp dword [ebp - 0x280], eax
je 0x30107f0e
mov eax, dword [ebp - 0x268]
add eax, 0x54
jmp 0x30107fd5
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x268]
push dword [eax + 8]
call fcn.30105a57
jmp case.0x30107e74.72
cmp dword [ebp + 0xc], 0x53
jne 0x30107f54
push 0xe50
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
jmp 0x30107f80
cmp dword [ebp + 0xc], 0x5e
jne 0x30107f8b
cmp dword [ebp - 0x270], eax
push 0x966
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x278]
jne 0x30107f83
movzx eax, byte [ebx]
and eax, 0xf
jmp 0x3010827b
push dword [ebp - 0x264]
cmp dword [ebp - 0x270], eax
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x278]
jne 0x30107faf
movzx eax, byte [ebx]
and eax, 0xf
push eax
jmp 0x30107f2a
cmp dword [ebp - 0x26c], 0
je 0x30108010
cmp dword [ebp - 0x284], 0
je case.0x30107e74.26
mov eax, dword [ebp - 0x268]
add eax, 0xa4
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
push eax
call fcn.301472de
push dword [ebp - 0x25c]
call fcn.3014723b
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
jmp case.0x30107e74.72
cmp dword [ebp - 0x26c], 0
jne 0x30107f00
mov ax, word [ebx + 4]
and ax, 0xfff
je 0x3010804f
cmp dword [ebp - 0x270], 0
je 0x3010804f
mov eax, dword [ebp - 0x278]
push dword [ebp + 0x14]
and eax, 0xf
cmp word [ebp + 0x18], 0x439
push dword [ebp - 0x25c]
jne 0x30108046
push dword [eax*4 + 0x30016d88]
jmp 0x30107fdf
push dword [eax*4 + 0x30016d58]
jmp 0x30107fdf
test ax, ax
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
je 0x3010834d
movzx eax, 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]
push eax
push dword [ebp + 0x18]
call fcn.3010730a
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
jmp 0x301081fe
mov dword [ebp - 0x264], 2
xor ecx, ecx
cmp dword [ebp - 0x26c], ecx
je 0x3010819f
cmp dword [ebp - 0x280], ecx
je 0x301080ee
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x268]
push dword [ebp - 0x25c]
add eax, 0xa4
push eax
call fcn.301472de
push dword [ebp - 0x25c]
call fcn.3014723b
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
jmp 0x3010810f
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
mov eax, dword [ebp - 0x268]
push dword [eax + 4]
call fcn.30105a57
mov eax, dword [ebp + 0x18]
and ax, 0x3ff
cmp ax, 0xc
jne case.0x30107e74.72
cmp dword [ebp - 0x264], 0
jne case.0x30107e74.72
mov eax, dword [ebp - 0x268]
cmp dword [eax + 4], 1
jne case.0x30107e74.72
mov edi, dword [edi + 4]
cmp word [edi], 0x20
jne case.0x30107e74.72
cmp word [edi + 2], 0x4d
jne case.0x30107e74.72
cmp word [edi + 4], 0x4d
jne case.0x30107e74.72
cmp word [edi + 6], 0x4d
jne case.0x30107e74.72
cmp word [edi + 8], 0x4d
jne case.0x30107e74.72
mov eax, dword [ebp - 0x25c]
mov word [eax], 0x65
add dword [ebp - 0x25c], 2
mov eax, dword [ebp - 0x25c]
mov word [eax], 0x72
add dword [ebp - 0x25c], 2
jmp case.0x30107e74.72
mov eax, dword [ebp + 0xc]
or byte [edi + 0x34], 4
cmp eax, 0x54
je 0x30108259
cmp eax, 0x55
je 0x30108259
cmp eax, 0x5f
je 0x30108231
cmp eax, 0x60
je 0x30108231
cmp dword [ebp - 0x270], ecx
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
je 0x301081ee
mov eax, dword [ebp - 0x276]
shr eax, 8
and eax, 0x1f
jmp 0x30107fb2
movzx eax, word [ebx + 2]
shr eax, 8
and eax, 0x1f
push eax
call fcn.30105a57
push dword [ebp + 0x18]
movzx eax, byte [edi + 0x34]
shr eax, 2
and eax, 1
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x25c]
push eax
push dword [ebp + 0xc]
push dword [edi + 4]
push dword [ebp + 0x14]
push dword [ebp - 0x27c]
push ebx
call fcn.30105c7c
jmp case.0x30107e74.72
cmp dword [ebp - 0x270], ecx
push 0x966
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
je 0x30108271
mov eax, dword [ebp - 0x276]
jmp 0x30108275
push 0xe50
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx + 2]
shr eax, 8
and eax, 0x1f
push eax
call fcn.3010652b
jmp case.0x30107e74.72
cmp dword [ebp - 0x26c], 0
je 0x301082bf
cmp dword [ebp - 0x284], 0
je case.0x30107e74.30
mov eax, dword [ebp - 0x268]
add eax, 0x90
jmp 0x30107fd5
cmp dword [ebp - 0x26c], 0
je 0x301082bf
mov eax, dword [ebp - 0x268]
add eax, 0x18
jmp 0x30107fd5
cmp dword [ebp - 0x270], 0
je 0x30108309
test word [ebx + 4], si
je 0x30108344
cmp word [ebp + 0x18], 0x439
je 0x30108309
mov eax, dword [ebp - 0x276]
push dword [ebp + 0x14]
shr eax, 5
push dword [ebp - 0x25c]
and eax, 7
cmp dword [ebp + 0xc], 0x24
jne 0x301082fd
push dword [eax*4 + 0x30016dd8]
jmp 0x30107fdf
push dword [eax*4 + 0x30016dbc]
jmp 0x30107fdf
test word [ebx + 4], si
je 0x30108344
movzx eax, word [ebx + 2]
test al, 0xe0
je 0x3010831f
shr eax, 5
and eax, 7
jmp 0x30108322
push 7
pop eax
push dword [ebp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xc], 0x24
push dword [ebp - 0x25c]
setne cl
dec ecx
and ecx, 7
add ecx, 0x2a
lea eax, [eax + ecx - 1]
jmp 0x3010807b
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
push 0x30017700
jmp 0x30107fdf
xor edx, edx
cmp dword [ebp - 0x26c], edx
je 0x30108391
cmp dword [ebp - 0x280], edx
jne case.0x30107e74.32
push 2
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x268]
mov eax, dword [eax + 0xc]
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x30107f2a
movzx eax, word [ebx + 4]
mov ecx, eax
and ecx, esi
je 0x30108443
test byte [ebp + 0x24], 0x10
je 0x301083ae
and eax, esi
add eax, 0x21f
jmp 0x301083c1
cmp cx, 0x76b
jne 0x301083ba
push 0x63
pop eax
jmp 0x301083c1
and eax, esi
sub eax, 0x76c
cmp dword [ebp + 0xc], 0x51
jne 0x301083e7
push 0xe50
push 2
push dword [ebp - 0x260]
lea ecx, [ebp - 0x25c]
push ecx
push 0x64
cdq
pop ecx
idiv ecx
push edx
jmp 0x3010827c
cmp dword [ebp + 0xc], 0x5c
jne 0x30108413
cmp dword [ebp - 0x270], edx
push 0x966
push 2
push dword [ebp - 0x260]
je 0x301083d4
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x274]
and eax, esi
jmp 0x301083db
cmp dword [ebp - 0x270], edx
push 2
push dword [ebp - 0x260]
je 0x30108437
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x274]
and eax, esi
jmp 0x30108385
lea ecx, [ebp - 0x25c]
push ecx
jmp 0x30108385
cmp dword [ebp + 0xc], 0x51
lea eax, [ebp - 0x25c]
jne 0x30108456
push 0xe50
jmp 0x30108461
cmp dword [ebp + 0xc], 0x5c
jne 0x30108471
push 0x966
push 2
push dword [ebp - 0x260]
push eax
push 0
jmp 0x3010827c
push 2
push dword [ebp - 0x260]
push eax
push 0
jmp 0x30107f2a
cmp word [ebp + 0x1c], 0x404
je 0x30108499
cmp word [ebp + 0x1c], 0xc04
je 0x30108499
cmp word [ebp + 0x1c], 0x1404
jne 0x301084dd
movzx eax, word [ebx + 4]
push dword [ebp + 0x14]
and eax, esi
push dword [ebp - 0x25c]
sub eax, 0x777
cmp eax, 1
jge 0x301084b9
push 0x30017180
jmp 0x301084be
push 0x30017178
call fcn.301472de
push dword [ebp - 0x25c]
call fcn.3014723b
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
cmp dword [ebp + 0xc], 0x3d
je case.0x30107e74.48
movzx eax, word [ebx + 4]
xor ecx, ecx
test si, ax
je 0x301085e8
cmp word [ebp + 0x1c], 0x804
je 0x301085d8
cmp word [ebp + 0x1c], 0x1004
je 0x301085d8
and eax, esi
sub eax, 0x777
jmp 0x301085da
cmp word [ebp + 0x1c], 0x404
je 0x30108532
cmp word [ebp + 0x1c], 0xc04
je 0x30108532
cmp word [ebp + 0x1c], 0x1404
jne 0x30108576
movzx eax, word [ebx + 4]
push dword [ebp + 0x14]
and eax, esi
push dword [ebp - 0x25c]
sub eax, 0x777
cmp eax, 1
jge 0x30108552
push 0x30017194
jmp 0x30108557
push 0x30017188
call fcn.301472de
push dword [ebp - 0x25c]
call fcn.3014723b
mov ecx, dword [ebp - 0x25c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
cmp dword [ebp + 0xc], 0x3e
jne case.0x30107e74.51
movzx eax, word [ebx + 4]
xor ecx, ecx
test si, ax
je 0x301085b4
cmp word [ebp + 0x1c], 0x804
je 0x301085a4
cmp word [ebp + 0x1c], 0x1004
je 0x301085a4
and eax, esi
sub eax, 0x777
jmp 0x301085a6
and eax, esi
mov ecx, eax
cmp ecx, 1
jge 0x301085b4
xor eax, eax
inc eax
sub eax, ecx
mov ecx, eax
push 1
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
push ecx
call fcn.30105a57
mov eax, dword [ebp - 0x25c]
and word [eax], 0
jmp case.0x30107e74.72
and eax, esi
mov ecx, eax
cmp ecx, 1
jge 0x301085e8
xor eax, eax
inc eax
sub eax, ecx
mov ecx, eax
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
push ecx
call fcn.30105b1c
jmp case.0x30107e74.72
movzx eax, word [ebx + 4]
test si, ax
push dword [ebp + 0x1c]
push dword [ebp - 0x260]
je 0x30108620
lea ecx, [ebp - 0x25c]
push ecx
and eax, esi
jmp 0x30108641
lea eax, [ebp - 0x25c]
push eax
push 0
jmp 0x301085f9
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, byte [ebx]
and eax, 0xf
push eax
jmp 0x301085f9
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx + 2]
shr eax, 8
and eax, 0x1f
jmp 0x30108641
movzx eax, byte [ebx + 2]
push dword [ebp + 0x14]
shr eax, 5
push dword [ebp - 0x25c]
and eax, 7
push dword [eax*4 + 0x300170bc]
jmp 0x30107fdf
movzx eax, byte [ebx + 2]
and eax, 0x1f
jne 0x3010868d
push 0xc
pop eax
jmp 0x30108695
cmp eax, 0xc
jle 0x30108695
sub eax, 0xc
push dword [ebp + 0x1c]
lea ecx, [ebp - 0x25c]
push dword [ebp - 0x260]
push ecx
jmp 0x30108641
movzx eax, byte [ebx + 2]
and eax, 0x1f
cmp eax, 0xc
jl 0x301086c5
jle 0x301086b8
add eax, 0xfffffff4
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x4e0b
jmp 0x301086d7
test eax, eax
jne 0x301086cc
push 0xc
pop eax
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x4e0a
add dword [ebp - 0x25c], 2
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x5348
add dword [ebp - 0x25c], 2
jmp 0x30108695
movzx eax, byte [ebx + 2]
and eax, 0x1f
cmp eax, 0xc
jl 0x30108710
jle 0x30108703
add eax, 0xfffffff4
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x4e0b
jmp 0x30108722
test eax, eax
jne 0x30108717
push 0xc
pop eax
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x4e0a
add dword [ebp - 0x25c], 2
mov ecx, dword [ebp - 0x25c]
mov word [ecx], 0x5348
add dword [ebp - 0x25c], 2
push 1
push dword [ebp - 0x260]
lea ecx, [ebp - 0x25c]
push ecx
jmp 0x30107fb2
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, byte [ebx + 2]
jmp 0x3010865b
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx]
shr eax, 4
and eax, 0x3f
jmp 0x30108641
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x30108641
movzx eax, word [ebx]
mov ecx, eax
and ecx, 0xf
jbe 0x30108344
cmp cx, 0xd
jae 0x30108344
push dword [ebp + 0x14]
and eax, 0xf
push dword [ebp - 0x25c]
push dword [eax*4 + 0x30017088]
jmp 0x30107fdf
movzx eax, byte [ebx + 2]
push dword [ebp + 0x14]
shr eax, 5
push dword [ebp - 0x25c]
and eax, 7
cmp dword [ebp + 0xc], 0x4d
jne 0x301087f6
push dword [eax*4 + 0x300170f4]
jmp 0x30107fdf
push dword [eax*4 + 0x300170d8]
jmp 0x30107fdf
mov dword [ebp - 0x264], 2
push ebx
call fcn.30105c27
test eax, eax
jge 0x30108937
xor ecx, ecx
cmp dword [ebp - 0x26c], ecx
je 0x3010884d
cmp dword [ebp - 0x280], ecx
jne 0x30108298
push 4
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x268]
push dword [eax + 0xc]
jmp 0x30107f2a
movzx ebx, word [ebx + 4]
and ebx, esi
test byte [ebp + 0x24], 0x10
push 4
pop eax
je 0x30108862
add ebx, 0x21f
cmp dword [ebp + 0xc], 0x52
jne 0x30108882
push 0xe50
push 4
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
push ebx
jmp 0x3010827c
cmp dword [ebp + 0xc], 0x5d
jne 0x301088b1
cmp dword [ebp - 0x270], ecx
push 0x966
push 4
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
je 0x3010887c
mov eax, dword [ebp - 0x274]
and eax, esi
jmp 0x3010827b
cmp dword [ebp - 0x270], ecx
je 0x301088d5
push 4
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
mov eax, dword [ebp - 0x274]
and eax, esi
jmp 0x30107fb2
test byte [edi + 0x34], 8
je 0x30108922
cmp word [ebp + 0x1c], 0x412
jne 0x301088eb
add ebx, 0x91d
jmp 0x3010891f
cmp ebx, ecx
je 0x30108901
sub ebx, 0x777
cmp ebx, 1
jge 0x30108901
xor ecx, ecx
inc ecx
sub ecx, ebx
mov ebx, ecx
cmp ebx, 0xa
jge 0x3010890b
xor eax, eax
inc eax
jmp 0x3010891f
cmp ebx, 0x64
jge 0x30108914
push 2
jmp 0x3010891e
cmp ebx, 0x3e8
jge 0x3010891f
push 3
pop eax
push eax
jmp 0x30108924
push 4
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
push ebx
jmp 0x30107f2a
movzx ebx, word [ebx + 4]
shl eax, 4
and ebx, esi
sub ebx, dword [eax + 0x300171a8]
lea eax, [ebp - 0x25c]
inc ebx
cmp dword [ebp + 0xc], 0x39
jne 0x30108963
push dword [ebp + 0x1c]
push dword [ebp - 0x260]
push eax
push ebx
jmp 0x301085f9
push dword [ebp - 0x264]
jmp 0x3010892a
push ebx
call fcn.30105c27
test eax, eax
jl case.0x30107e74.72
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
push eax
call fcn.30105beb
jmp 0x30107fe4
push ebx
call fcn.30105c27
test eax, eax
jl case.0x30107e74.72
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
push eax
call fcn.30105c09
mov ecx, dword [ebp - 0x25c]
xor eax, eax
cmp dword [ebp + 0xc], 0x36
sete al
lea eax, [ecx + eax*2 + 2]
jmp 0x30107ff8
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30017118
jae 0x30107fd5
mov eax, 0x30017110
jmp 0x30107fd5
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30017128
jae 0x30107fd5
mov eax, 0x30017120
jmp 0x30107fd5
mov al, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
mov eax, 0x30017138
jae 0x30107fd5
mov eax, 0x30017130
jmp 0x30107fd5
push dword [ebp + 0x14]
push dword [ebp - 0x25c]
push 0x30017170
call fcn.301472de
push dword [ebp - 0x25c]
call fcn.3014723b
mov ecx, dword [ebp - 0x25c]
or byte [edi + 0x34], 8
lea eax, [ecx + eax*2]
mov dword [ebp - 0x25c], eax
jmp case.0x30107e74.72
cmp word [ebp + 0x1c], 0x804
je 0x30108a86
cmp word [ebp + 0x1c], 0x1004
je 0x30108a86
movzx eax, word [ebx + 4]
push dword [ebp + 0x14]
and eax, 0xfff
push dword [ebp - 0x25c]
sub eax, 0x777
cmp eax, 1
jge 0x30108a7f
push 0x30017194
jmp 0x30108a24
push 0x30017188
jmp 0x30108a24
and byte [edi + 0x34], 0xf7
jmp case.0x30107e74.72
mov dword [ebp - 0x264], 2
movzx eax, byte [ebx + 2]
and eax, 0x1f
cmp dword [ebp + 0xc], 0x57
jg 0x30108abd
test eax, eax
jne 0x30108ab5
test word [ebx + 4], si
je 0x30108abd
push 0xc
pop eax
jmp 0x30108abd
cmp eax, 0xc
jle 0x30108abd
sub eax, 0xc
xor ecx, ecx
cmp dword [ebp - 0x264], 2
push 0xe50
sete cl
inc ecx
push ecx
push dword [ebp - 0x260]
lea ecx, [ebp - 0x25c]
push ecx
jmp 0x3010827b
push 0xe50
push 2
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
movzx eax, word [ebx]
shr eax, 4
and eax, 0x3f
jmp 0x3010827b
push 0xe50
push 2
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x3010827b
push 0x966
push 1
push dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
movzx eax, byte [ebx + 2]
jmp 0x30108278
push 0x966
jmp 0x30108ae7
push 0x966
jmp 0x30108b09
mov dword [ebp - 0x264], 2
movzx eax, byte [ebx + 2]
and eax, 0x1f
cmp dword [ebp + 0xc], 0x29
jg 0x30108b7c
test eax, eax
jne 0x30108b74
test word [ebx + 4], si
je 0x30108b7c
push 0xc
pop eax
jmp 0x30108b7c
cmp eax, 0xc
jle 0x30108b7c
sub eax, 0xc
push dword [ebp - 0x264]
jmp 0x3010873d
mov dword [ebp - 0x264], 2
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx]
shr eax, 4
and eax, 0x3f
jmp 0x30107fb2
mov dword [ebp - 0x264], 2
push dword [ebp - 0x264]
lea eax, [ebp - 0x25c]
push dword [ebp - 0x260]
push eax
movzx eax, word [ebx]
shr eax, 0xa
jmp 0x30107fb2
cmp dword [ebp - 0x28c], 0
lea esi, [ebp - 0x258]
jne 0x30108c09
push 0x100
mov eax, esi
push eax
movzx eax, byte [ebx + 2]
and al, 0x1f
cmp al, 0xc
sbb eax, eax
add eax, 0x29
push eax
push dword [ebp + 0x18]
call fcn.3010730a
jmp 0x30108c2a
movzx eax, 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.30106298
cmp word [ebp - 0x258], 0
je 0x30108c69
movzx eax, word [ebp - 0x258]
cmp dword [ebp + 0xc], 0x2f
jne 0x30108c4c
push 0
push dword [ebp + 0x18]
push eax
call fcn.301042fd
mov ecx, dword [ebp - 0x25c]
movzx eax, ax
mov word [ecx], ax
add dword [ebp - 0x25c], 2
inc esi
inc esi
movzx eax, word [esi]
test ax, ax
jne 0x30108c3b
lea eax, [ebp - 0x258]
push eax
call fcn.3014723b
test eax, eax
sete al
shl al, 4
xor al, byte [edi + 0x34]
and al, 0x10
xor byte [edi + 0x34], al
mov eax, dword [ebp - 0x25c]
sub eax, dword [ebp - 0x27c]
sar eax, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.3010f365
leave
ret 0x24