Function at 0x10101ce0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x140
mov esi, dword [ebp + 8]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x114], 0x50
mov ecx, dword [esi + 0xc4]
call fcn.100f6210
test eax, eax
je 0x10101dfd
mov edi, dword [ebp + 0xc]
mov dword [esi + 0x190], 0
cmp dword [esi + 0x610], 2
jne 0x10101d3a
mov eax, dword [edi + 8]
xor esi, esi
cmp byte [eax], 0x17
je 0x10101ee3
mov ebx, dword [ebp + 8]
test byte [ebx + 0x1d], 4
jne 0x10101d51
push dword [ebx + 0x174]
call fcn.100d4620
add esp, 4
mov edx, dword [ebx + 0x3b0]
cmp dword [ebx + 0xa24], 1
jne 0x10101e09
push dword [edi + 8]
push edx
mov esi, edx
call fcn.100f3400
mov edx, esi
add esp, 8
cmp word [esi + 0x4c], ax
je 0x10101da3
movzx ecx, word [ebx + 0x58]
cmp ecx, 0x304
jb 0x10101fae
movzx eax, ax
push eax
push 1
push ebx
call fcn.10119ee0
add esp, 0xc
mov edx, eax
test eax, eax
je 0x10101fae
cmp edx, dword [ebx + 0x3b0]
sete cl
lea eax, [edx + 0x10]
mov dword [ebp - 0x120], eax
movzx eax, word [edx + 0x10]
cmp eax, 0x301
setae al
cmp dword [ebx + 0xa24], 1
mov byte [ebp - 0x131], al
mov byte [ebp - 0x132], cl
jne 0x10101e31
mov eax, dword [edi + 0x10]
push dword [eax + 4]
push dword [eax]
push dword [edi + 8]
push edx
push ebx
mov esi, edx
call fcn.100f2030
add esp, 0x14
test eax, eax
je 0x10101f86
xor esi, esi
dec esi
jmp 0x10101fb0
push 0
push 0xffffd053
jmp 0x10101ed8
test edx, edx
je 0x10101fae
lea eax, [edx + 0x10]
mov dword [ebp - 0x120], eax
movzx eax, word [edx + 0x10]
cmp eax, 0x301
setae byte [ebp - 0x131]
mov byte [ebp - 0x132], 1
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x5c]
mov dword [edi], ecx
mov esi, edi
mov dword [edi + 4], eax
mov edi, dword [edx + 0x14]
cmp ecx, dword [edi + 0x30]
sbb eax, dword [edi + 0x34]
jae 0x10101ebd
mov dword [ebp - 0x128], edi
movzx eax, word [ebx + 0x58]
movzx ebx, word [edx + 0xf4]
lea ecx, [ebx + 0x800]
mov edi, edx
mov dword [ebp - 0x14c], ebx
lea edx, [ebx + 0x100]
cmp eax, 0x304
cmovae ecx, edx
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 4]
movzx ecx, cx
cmp eax, ecx
jbe 0x10101efa
mov edi, dword [ebp + 8]
test byte [edi + 0x1d], 4
jne 0x10101e9a
push dword [edi + 0x174]
call fcn.100d4700
add esp, 4
xor esi, esi
cmp dword [edi + 0xa24], 1
je 0x10101ee3
push 0x16
push 2
push dword [ebp + 8]
call fcn.100f4470
add esp, 0xc
push 0
push 0xffffd019
jmp 0x10101ed8
test byte [ebx + 0x1d], 4
jne 0x10101ed1
push dword [ebx + 0x174]
call fcn.100d4700
add esp, 4
push 0
push 0xffffd099
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0x140
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 8]
movzx ecx, byte [ecx]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x118], edi
movzx edx, word [edi + 0x4c]
test dx, dx
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x128]
je 0x10101fcd
lea ecx, [esi + 0x18c]
mov dword [ebp - 0x13c], ecx
add esi, 0x190
or eax, dword [edi]
je 0x10102b84
test dx, dx
je 0x10101ff4
mov eax, dword [ebp - 0x120]
movzx eax, word [eax]
cmp eax, 0x303
jbe 0x10101ff4
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x110]
push eax
push ecx
push dword [ebp - 0x13c]
push dword [ebp + 0xc]
push dword [ebp - 0x118]
push dword [ebp + 8]
call fcn.10120590
add esp, 0x18
jmp 0x10102ab8
push edi
push edi
mov dword [ebp - 0x118], esi
push esi
push ebx
call fcn.100f3480
add esp, 0x10
test eax, eax
je 0x10101fae
mov ecx, dword [edi]
mov esi, edi
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x118]
jmp 0x10101e3e
xor esi, esi
test byte [ebx + 0x1d], 4
jne 0x10101ee3
push dword [ebx + 0x174]
call fcn.100d4700
add esp, 4
jmp 0x10101ee3
cmp dword [esi + 0xa24], 1
jne 0x10102100
cmp cl, 0x17
je 0x10102109
and cl, 0xe0
cmp cl, 0x20
jne 0x10101f22
jmp 0x10102109
lea eax, [ebp - 0x5d]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0xd
mov dword [ebp - 0xfc], 1
mov dword [ebp - 0x10c], 0x41
mov eax, dword [edi + 0x10]
cmp eax, 2
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x130], esi
je 0x10102127
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 0xc]
cmp eax, 1
jne 0x1010205d
inc edx
mov ecx, dword [ebp - 0x120]
movzx ecx, word [ecx]
cmp ecx, 0x302
jb 0x1010205d
add edx, dword [edi + 0x14]
mov ecx, dword [ebx + 4]
cmp ecx, edx
jb 0x10102a96
mov edx, ecx
xor esi, esi
dec esi
mov dword [ebp - 0x11c], 0
cmp eax, 1
jne 0x10102145
mov ecx, edx
mov eax, dword [ebp - 0x120]
movzx eax, word [eax]
cmp eax, 0x302
mov edx, dword [ebp - 0x118]
jb 0x1010229e
mov esi, dword [edi + 0x14]
lea eax, [esi - 8]
cmp eax, 0x10
ja 0x10102438
mov eax, dword [ebx]
mov dword [ebp - 0x124], eax
mov ecx, dword [edx + 0x1c]
mov ebx, dword [edx + 0x20]
call dword [section..00cfg]
lea eax, [ebp - 0xa0]
lea edx, [ebp - 0x50]
mov dword [ebp - 0x11c], esi
push esi
push dword [ebp - 0x124]
push 0x18
push eax
push edx
push ebx
call ecx
add esp, 0x18
xor esi, esi
cmp eax, 1
sbb esi, esi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov ebx, eax
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x118]
movzx eax, word [eax + 0xf4]
jmp 0x1010214b
cmp cl, 0x17
jne 0x10101f22
push 0
push 0xffffd036
call sym.nss3.dll_PR_SetError
add esp, 8
mov dword [ebp - 0x114], 0xa
jmp 0x10102ac0
mov eax, dword [edi + 0x1c]
add eax, dword [edi + 0x20]
mov edx, dword [ebx + 4]
cmp edx, eax
jb 0x10102a96
xor esi, esi
dec esi
mov dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x14c]
add eax, 0x140
cmp edx, eax
jbe 0x10102172
mov dword [ebp - 0x114], 0x16
push 0
push 0xffffd019
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x10102aaf
mov ecx, esi
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x120]
movzx eax, word [eax]
xor edx, edx
mov dword [ebp - 0x138], eax
cmp eax, 0x301
setae dl
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
movzx esi, byte [eax]
mov dword [ebp - 0x144], esi
movzx eax, word [eax + 1]
rol ax, 8
mov word [ebp - 0x12c], ax
mov eax, dword [edi + 0x10]
cmp eax, 1
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x120], edx
je 0x101022ab
cmp eax, 2
jne 0x101022cc
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x11c], eax
add eax, ecx
mov ebx, dword [ebp - 0x124]
sub ebx, eax
xor eax, eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa24], 1
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x124], ecx
sete al
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
mov ecx, dword [ebp - 0x118]
movzx ecx, word [ecx + 0x4c]
movzx edi, word [ebp - 0x12c]
mov dword [ebp - 0x12c], edi
lea edi, [ebp - 0x108]
mov dword [ebp - 0x128], edi
push edi
push ebx
push eax
push dword [ebp - 0x12c]
push dword [ebp - 0x120]
push dword [ebp - 0x144]
push dword [esi + 4]
call fcn.100f57b0
add esp, 0x1c
mov eax, dword [ebp - 0x118]
add eax, 0x34
mov edi, dword [ebp - 0x138]
test edi, edi
je 0x1010244e
lea ecx, [ebp - 0x50]
mov ebx, dword [ebp - 0x124]
push ebx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebx + ebp]
add eax, 0xffffffb0
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edx, dword [esi + 0x10]
mov ecx, edi
lea eax, [ebp - 0x50]
mov dword [ebp - 0x128], edx
jmp 0x1010245c
mov eax, dword [ebp - 0x14c]
mov edx, ecx
jmp 0x1010214b
mov ecx, dword [ebp - 0x124]
mov esi, dword [ebp - 0x11c]
sub ecx, esi
mov eax, ecx
xor edx, edx
div dword [edi + 0x18]
test edx, edx
mov edx, ecx
jne 0x10102a96
jmp 0x101022da
mov edx, dword [ebp - 0x124]
mov esi, dword [ebp - 0x11c]
sub edx, esi
add esi, dword [ebx]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18c]
mov dword [ebp - 0x11c], ecx
mov eax, dword [eax + 0x194]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x124], eax
mov ebx, esi
mov esi, edx
call dword [section..00cfg]
push esi
push ebx
push dword [ebp - 0x140]
push dword [ebp - 0x130]
push dword [ebp - 0x11c]
push dword [ebp - 0x124]
call ecx
add esp, 0x18
test eax, eax
jne 0x10102a96
mov eax, dword [ebp - 0x130]
mov ebx, dword [eax]
cmp dword [edi + 0x10], 1
mov dword [ebp - 0x11c], ebx
jne 0x101024c6
movzx edx, word [ebp - 0x138]
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
mov esi, eax
lea ecx, [eax + 1]
cmp edx, 0x300
mov eax, dword [ebp - 0x13c]
jbe 0x101024ce
mov dword [ebp - 0x138], 0
mov edx, dword [ebp - 0x11c]
mov ebx, edx
cmp ecx, edx
ja 0x10102527
mov ecx, dword [eax]
mov eax, dword [ebp - 0x11c]
movzx ebx, byte [eax + ecx - 1]
not esi
add esi, eax
sub esi, ebx
not esi
sar esi, 0x1f
mov edi, esi
mov edx, 0x100
cmp eax, edx
cmovb edx, eax
test edx, edx
je 0x101023fc
mov esi, edx
mov eax, dword [ebp - 0x11c]
lea edx, [eax + ecx]
dec edx
xor ecx, ecx
mov dword [ebp - 0x124], esi
cmp ecx, ebx
mov eax, 0xff
mov esi, 0
cmova eax, esi
mov esi, edx
mov dl, byte [edx]
xor dl, bl
movzx edx, dl
and edx, eax
not edx
and edi, edx
mov edx, esi
inc ecx
dec edx
cmp dword [ebp - 0x124], ecx
jne 0x101023d2
mov eax, edi
shr eax, 4
and eax, edi
mov ecx, eax
shr ecx, 2
and ecx, eax
mov edx, ecx
shr edx, 1
and edx, ecx
and edx, 1
not ebx
xor esi, esi
sub edx, 1
cmovae esi, ebx
add esi, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x130]
mov ebx, esi
mov dword [eax], esi
mov edi, dword [ebp - 0x128]
jmp 0x10102516
mov dword [ebp - 0x114], 0x50
push 0
push 0xffffe001
jmp 0x10102165
mov edx, dword [esi + 0x10]
mov ecx, 8
mov ebx, dword [ebp - 0x124]
mov esi, edi
mov edi, dword [edx + 4]
sub edi, esi
add ebx, esi
add esi, dword [edx]
xor edx, edx
push edi
push esi
push dword [ebp - 0x11c]
mov edi, dword [ebp + 8]
push dword [edi + 0x194]
push dword [ebp - 0x130]
push dword [edi + 0x18c]
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push ecx
mov ecx, dword [ebp - 0x128]
push dword [ecx]
push ebx
push edx
push eax
push edx
push edx
push 1
mov eax, dword [ebp - 0x118]
push dword [eax + 0x20]
call fcn.1011f9c0
add esp, 0x44
test eax, eax
mov edi, dword [ebp - 0x148]
jne 0x10102a96
jmp 0x10102a90
mov eax, dword [ebp - 0x148]
jmp 0x10102521
mov dword [ebp - 0x138], 0
mov edx, dword [ebp - 0x11c]
mov ebx, edx
cmp ecx, edx
ja 0x10102527
mov edx, dword [edi + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x11c]
movzx ecx, byte [eax + ecx - 1]
not esi
add esi, eax
sub esi, ecx
inc ecx
sub edx, ecx
or edx, esi
not edx
sar edx, 0x1f
and ecx, edx
mov esi, eax
sub esi, ecx
mov eax, dword [ebp - 0x130]
mov ebx, esi
mov dword [eax], esi
not edx
xor eax, eax
test edx, edx
cmove eax, dword [ebp - 0x148]
mov dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [edx + 0x18]
sub ebx, dword [eax + 0xc]
mov dword [ebp - 0x128], ebx
xor eax, eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa24], 1
sete al
mov esi, dword [ebp + 0xc]
mov ebx, dword [esi]
movzx ecx, word [edx + 0x4c]
movzx edx, word [ebp - 0x12c]
mov dword [ebp - 0x124], edx
mov edx, ebx
lea ebx, [ebp - 0x108]
push ebx
push dword [ebp - 0x128]
push eax
push dword [ebp - 0x124]
push dword [ebp - 0x120]
push dword [ebp - 0x144]
push dword [esi + 4]
call fcn.100f57b0
add esp, 0x1c
cmp dword [edi + 0x10], 1
jne 0x10102736
mov esi, dword [ebp - 0x118]
mov ecx, dword [esi + 0x18]
cmp dword [ecx], 0
mov ebx, dword [ebp - 0x13c]
je 0x101027f4
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0x128], eax
mov eax, dword [ebx]
mov dword [ebp - 0x120], eax
movzx edx, word [esi + 0x10]
xor eax, eax
cmp edx, 0x300
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x144], edx
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0x50]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x11c]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x108]
mov dword [ebp - 0x124], ecx
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x12c], ecx
mov dword [edx + 0xc], ecx
lea esi, [ebp - 0xe0]
mov dword [esi + 4], edx
lea ecx, [ebp - 0xa0]
lea edx, [ebp - 0xf8]
mov dword [edx + 4], ecx
mov edi, dword [ebp - 0x10c]
mov dword [edx + 8], edi
sete al
add eax, 0xce534363
mov ecx, esi
mov dword [esi + 8], 0x10
xor esi, esi
mov dword [ecx], esi
lea edi, [ebp - 0xec]
mov ebx, dword [ebp - 0x120]
mov dword [edi + 4], ebx
mov ebx, dword [ebp - 0x128]
mov dword [edi + 8], ebx
mov dword [edi], esi
mov dword [edx], esi
push edi
push edx
push ecx
push eax
mov eax, dword [ebp - 0x118]
push dword [eax + 0x2c]
call fcn.100becf0
add esp, 0x14
test eax, eax
je 0x1010280e
cmp dword [0x101f4f80], 0
je 0x10102d9f
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10102d7a
cmp dword [eax + 0x28], 0xffffe006
jne 0x10102849
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x18]
cmp dword [eax], 0
je 0x1010286b
mov esi, dword [ebp - 0x128]
sub esi, dword [ebp - 0x144]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x118]
mov edi, dword [eax + 0x30]
push edi
call sym.nss3.dll_PK11_DigestBegin
add esp, 4
mov ebx, eax
push dword [ebp - 0x12c]
push dword [ebp - 0x124]
push edi
call sym.nss3.dll_PK11_DigestOp
add esp, 0xc
or eax, ebx
mov ebx, eax
push esi
push dword [ebp - 0x120]
push edi
call sym.nss3.dll_PK11_DigestOp
add esp, 0xc
mov esi, eax
or esi, ebx
lea eax, [ebp - 0x10c]
push dword [ebp - 0x128]
push eax
lea eax, [ebp - 0xa0]
push eax
push edi
call sym.nss3.dll_PK11_DigestFinal
add esp, 0x10
or eax, esi
jne 0x10102853
jmp 0x10102875
mov edx, dword [ebp - 0x118]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x130]
mov edi, dword [ecx]
sub edi, dword [eax + 0xc]
mov dword [ecx], edi
mov eax, dword [edx + 0x18]
cmp dword [eax], 0
mov ecx, edx
je 0x10102800
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x11c], edx
mov ebx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x13c]
mov edx, dword [edx]
mov dword [ebp - 0x128], edx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x120], eax
mov esi, dword [ecx + 0x30]
push esi
call sym.nss3.dll_PK11_DigestBegin
add esp, 4
mov dword [ebp - 0x124], eax
push ebx
push dword [ebp - 0x11c]
push esi
call sym.nss3.dll_PK11_DigestOp
add esp, 0xc
mov ebx, eax
or ebx, dword [ebp - 0x124]
push edi
push dword [ebp - 0x128]
push esi
call sym.nss3.dll_PK11_DigestOp
add esp, 0xc
mov edi, eax
or edi, ebx
lea eax, [ebp - 0x10c]
lea ecx, [ebp - 0xa0]
push dword [ebp - 0x120]
push eax
push ecx
push esi
call sym.nss3.dll_PK11_DigestFinal
add esp, 0x10
or eax, edi
je 0x1010282c
push 0xffffd04b
call fcn.1010c480
add esp, 4
xor edx, edx
dec edx
jmp 0x1010282e
mov dword [ebp - 0x10c], 0
jmp 0x10102820
mov dword [ebp - 0x10c], 0
xor edx, edx
jmp 0x10102834
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x10c], eax
mov esi, dword [ebp - 0x118]
mov dword [ebp - 0x12c], 0
jmp 0x10102885
xor edx, edx
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x13c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x130]
add esi, dword [eax]
jmp 0x10102a62
mov dword [ebp - 0x10c], 0
push 0xffffd04b
call fcn.1010c480
add esp, 4
xor eax, eax
dec eax
mov dword [ebp - 0x12c], eax
jmp 0x1010287f
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x12c], 0
mov esi, dword [ebp - 0x118]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x148], eax
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
mov dword [ebp - 0x144], eax
mov esi, eax
sub esi, edx
lea eax, [edx + 0x100]
xor ecx, ecx
mov edi, dword [ebp - 0x11c]
sub edi, eax
cmovb edi, ecx
mov ecx, esi
sub ecx, edi
lea eax, [edx - 0x10]
mov esi, edx
shrd eax, edx, 2
cmp eax, 8
ja case.0x101028c8.2
jmp dword [eax*4 + 0x101c63f4]
and ecx, 0xf
jmp 0x101028d7
and ecx, 0x1f
mov dword [ebp - 0x140], ecx
jmp 0x1010293c
mov eax, 0xff
mov edx, ecx
and ecx, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
shr ecx, 9
imul ecx, ecx, 0xec
add ecx, edx
and ecx, eax
lea eax, [ecx - 0x14]
cmp ecx, 0x14
jmp 0x10102924
mov eax, 0xff
mov edx, ecx
and ecx, eax
add ecx, ecx
lea ecx, [ecx + ecx*4]
shr ecx, 9
imul ecx, ecx, 0xd0
add ecx, edx
and ecx, eax
lea eax, [ecx - 0x30]
cmp ecx, 0x30
cmovb eax, ecx
mov dword [ebp - 0x140], eax
jmp 0x1010293c
movzx eax, cl
xor edx, edx
div esi
mov dword [ebp - 0x140], edx
lea eax, [ebp - 0x50]
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x11c]
cmp edi, ecx
jae 0x101029cf
mov eax, dword [ebp - 0x144]
mov edx, eax
neg edx
mov dword [ebp - 0x128], edx
mov edx, esi
sub edx, eax
mov dword [ebp - 0x124], edx
mov ebx, 0
test esi, esi
je 0x101029cb
cmp edi, ecx
jae 0x101029cb
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax]
mov dword [ebp - 0x120], eax
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x128]
add ecx, edi
mov edx, dword [ebp - 0x124]
add edx, edi
mov edx, dword [ebp - 0x120]
movzx edx, byte [edx + edi]
cmovs edx, ebx
sar ecx, 0x1f
and ecx, edx
or byte [ebp + eax - 0x51], cl
inc edi
cmp eax, esi
jae 0x101029c5
inc eax
mov ecx, dword [ebp - 0x11c]
cmp edi, ecx
jb 0x1010298d
jmp 0x101029cb
mov ecx, dword [ebp - 0x11c]
cmp edi, ecx
jb 0x10102974
lea eax, [ebp - 0xe0]
mov edi, esi
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test esi, esi
je 0x10102a39
mov eax, edi
sub eax, dword [ebp - 0x140]
movzx ecx, al
sub ecx, edi
sar ecx, 0x1f
and ecx, eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x120], eax
mov al, byte [ebp + eax - 0x50]
movzx edx, cl
xor ecx, ecx
cmp dl, cl
movzx ebx, al
cmovne ebx, edi
or byte [ebp + ecx - 0xe0], bl
inc ecx
cmp esi, ecx
jne 0x10102a0c
mov ebx, esi
inc dl
movzx ecx, dl
sub ecx, esi
sar ecx, 0x1f
and cl, dl
mov eax, dword [ebp - 0x120]
inc eax
cmp eax, esi
jne 0x101029fd
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
sub ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x130]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
lea esi, [ebp - 0xe0]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ecx + 0x18]
cmp eax, dword [ecx + 0xc]
jne 0x10102a96
xor edi, edi
test edx, edx
cmove edi, dword [ebp - 0x138]
lea ecx, [ebp - 0xa0]
push eax
push ecx
push esi
call sym.nss3.dll_NSS_SecureMemcmp
add esp, 0xc
test eax, eax
jne 0x10102a96
xor eax, eax
test edi, edi
jne 0x10102ab2
push 0
push 0xffffd00f
call sym.nss3.dll_PR_SetError
add esp, 8
mov dword [ebp - 0x114], 0x14
xor eax, eax
dec eax
mov esi, dword [ebp - 0x130]
test eax, eax
je 0x10102b84
mov edi, dword [ebp + 8]
test byte [edi + 0x1d], 4
jne 0x10102ad7
push dword [edi + 0x174]
call fcn.100d4700
add esp, 4
mov dword [edi + 0x190], 0
movzx eax, word [edi + 0x58]
cmp eax, 0x304
mov ecx, dword [ebp + 0xc]
jb 0x10102b36
mov eax, dword [ecx + 8]
cmp byte [eax], 0x14
jne 0x10102b36
cmp dword [edi + 0x450], 0
je 0x10102b36
mov eax, dword [ecx + 0x10]
cmp dword [eax + 4], 1
jne 0x10102b36
mov eax, dword [eax]
cmp byte [eax], 1
jne 0x10102b36
cmp dword [edi + 0x628], 0
je 0x10102d4e
mov dword [ebp - 0x114], 0xa
push 0
push 0xffffd025
call sym.nss3.dll_PR_SetError
add esp, 8
cmp dword [edi + 0xa24], 1
jne 0x10102b5e
push dword [ebp - 0x118]
call fcn.100f1ba0
add esp, 4
test eax, eax
je 0x10102b75
cmp dword [edi + 0xa24], 1
je 0x10102c8d
cmp dword [edi + 0x60], 0
je 0x10102c8d
cmp dword [edi + 0x610], 1
jne 0x10102c8d
xor esi, esi
cmp esi, dword [edi + 0x6bc]
sbb esi, esi
jmp 0x10101ee3
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa24], 1
jne 0x10102bf4
mov edi, dword [ebp - 0x118]
lea eax, [edi + 0x60]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x130], esi
mov esi, ecx
push dword [ecx + 4]
push dword [ecx]
push eax
call fcn.100f31f0
add esp, 0xc
mov ecx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x120], eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
add eax, 1
adc edx, 0
cmp ecx, eax
mov ebx, eax
cmova ebx, ecx
mov esi, dword [ebp - 0x120]
cmp esi, edx
cmova eax, ecx
cmova edx, esi
cmove eax, ebx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x130]
mov dword [edi + 0x5c], edx
mov ecx, edi
mov dword [edi + 0x58], eax
jmp 0x10102c05
mov ecx, dword [ebp - 0x118]
add dword [ecx + 0x58], 1
adc dword [ecx + 0x5c], 0
mov ebx, dword [ebp + 8]
movzx eax, word [ecx + 0x4c]
mov word [ebp - 0x120], ax
mov edi, ebx
test byte [ebx + 0x1d], 4
jne 0x10102c2c
push dword [edi + 0x174]
call fcn.100d4700
mov ecx, dword [ebp - 0x118]
add esp, 4
cmp byte [ebp - 0x132], 0
mov edx, dword [ebp - 0x13c]
je 0x10102c77
cmp byte [ebp - 0x131], 0
je 0x10102cca
mov eax, dword [ebp - 0x14c]
cmp dword [esi], eax
jbe 0x10102cca
mov eax, edi
mov dword [edi + 0x190], 0
xor esi, esi
cmp dword [edi + 0xa24], 1
je 0x10101ee3
push 0x16
push 2
push edi
jmp 0x10101eac
push edx
push dword [ebp - 0x110]
push ecx
push edi
call fcn.100f1d50
add esp, 0x10
jmp 0x10102d27
cmp dword [0x101f4f80], 0
je 0x10102d95
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10102d5f
mov esi, dword [eax + 0x28]
push dword [ebp - 0x114]
push 2
push edi
call fcn.100f4470
add esp, 0xc
push 0
push esi
jmp 0x10101ed8
mov eax, dword [ebp - 0x110]
cmp eax, 0x17
jne 0x10102d0c
xor esi, esi
cmp dword [edi + 0x38], 0
jne 0x10101ee3
movzx eax, word [edi + 0x58]
cmp eax, 0x304
jb 0x10102d2e
cmp dword [edi + 0x60], 0
je 0x10102d2e
cmp dword [edi + 0x60c], 2
jne 0x10102d2e
push dword [ebp - 0x13c]
push edi
call fcn.10120c90
add esp, 8
jmp 0x10102d27
movzx ecx, word [ebp - 0x120]
push edx
mov edx, dword [ebp + 0xc]
push dword [edx + 4]
push dword [edx]
push ecx
push eax
push edi
call fcn.10101580
add esp, 0x18
mov esi, eax
jmp 0x10101ee3
xor esi, esi
mov dword [edi + 0x190], esi
push 0xa
push 2
push edi
call fcn.100f4470
add esp, 0xc
push esi
push 0xffffd036
jmp 0x10101ed8
mov dword [edi + 0x628], 1
xor esi, esi
jmp 0x10101ee3
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x10102cae
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x10102697
call fcn.1001b2e0
jmp 0x10102c9a
call fcn.1001b2e0
jmp 0x10102683