Function at 0x10100720
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 [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x114], 0x50
mov ecx, dword [esi + 0xc4]
call fcn.100f4c50
test eax, eax
je 0x1010083d
mov edi, dword [ebp + 0xc]
mov dword [esi + 0x190], 0
cmp dword [esi + 0x610], 2
jne 0x1010077a
mov eax, dword [edi + 8]
xor esi, esi
cmp byte [eax], 0x17
je 0x10100923
mov ebx, dword [ebp + 8]
test byte [ebx + 0x1d], 4
jne 0x10100791
push dword [ebx + 0x174]
call fcn.100d3060
add esp, 4
mov edx, dword [ebx + 0x3b0]
cmp dword [ebx + 0xa24], 1
jne 0x10100849
push dword [edi + 8]
push edx
mov esi, edx
call fcn.100f1e40
mov edx, esi
add esp, 8
cmp word [esi + 0x4c], ax
je 0x101007e3
movzx ecx, word [ebx + 0x58]
cmp ecx, 0x304
jb 0x101009ee
movzx eax, ax
push eax
push 1
push ebx
call fcn.10118920
add esp, 0xc
mov edx, eax
test eax, eax
je 0x101009ee
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 0x10100871
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.100f0a70
add esp, 0x14
test eax, eax
je 0x101009c6
xor esi, esi
dec esi
jmp 0x101009f0
push 0
push 0xffffd053
jmp 0x10100918
test edx, edx
je 0x101009ee
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 0x101008fd
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 0x1010093a
mov edi, dword [ebp + 8]
test byte [edi + 0x1d], 4
jne 0x101008da
push dword [edi + 0x174]
call fcn.100d3140
add esp, 4
xor esi, esi
cmp dword [edi + 0xa24], 1
je 0x10100923
push 0x16
push 2
push dword [ebp + 8]
call fcn.100f2eb0
add esp, 0xc
push 0
push 0xffffd019
jmp 0x10100918
test byte [ebx + 0x1d], 4
jne 0x10100911
push dword [ebx + 0x174]
call fcn.100d3140
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.10156ff0
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 0x10100a0d
lea ecx, [esi + 0x18c]
mov dword [ebp - 0x13c], ecx
add esi, 0x190
or eax, dword [edi]
je 0x101015c4
test dx, dx
je 0x10100a34
mov eax, dword [ebp - 0x120]
movzx eax, word [eax]
cmp eax, 0x303
jbe 0x10100a34
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.1011efd0
add esp, 0x18
jmp 0x101014f8
push edi
push edi
mov dword [ebp - 0x118], esi
push esi
push ebx
call fcn.100f1ec0
add esp, 0x10
test eax, eax
je 0x101009ee
mov ecx, dword [edi]
mov esi, edi
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x118]
jmp 0x1010087e
xor esi, esi
test byte [ebx + 0x1d], 4
jne 0x10100923
push dword [ebx + 0x174]
call fcn.100d3140
add esp, 4
jmp 0x10100923
cmp dword [esi + 0xa24], 1
jne 0x10100b40
cmp cl, 0x17
je 0x10100b49
and cl, 0xe0
cmp cl, 0x20
jne 0x10100962
jmp 0x10100b49
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 0x10100b67
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 0xc]
cmp eax, 1
jne 0x10100a9d
inc edx
mov ecx, dword [ebp - 0x120]
movzx ecx, word [ecx]
cmp ecx, 0x302
jb 0x10100a9d
add edx, dword [edi + 0x14]
mov ecx, dword [ebx + 4]
cmp ecx, edx
jb 0x101014d6
mov edx, ecx
xor esi, esi
dec esi
mov dword [ebp - 0x11c], 0
cmp eax, 1
jne 0x10100b85
mov ecx, edx
mov eax, dword [ebp - 0x120]
movzx eax, word [eax]
cmp eax, 0x302
mov edx, dword [ebp - 0x118]
jb 0x10100cde
mov esi, dword [edi + 0x14]
lea eax, [esi - 8]
cmp eax, 0x10
ja 0x10100e78
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 0x10100b8b
cmp cl, 0x17
jne 0x10100962
push 0
push 0xffffd036
call sym.nss3.dll_PR_SetError
add esp, 8
mov dword [ebp - 0x114], 0xa
jmp 0x10101500
mov eax, dword [edi + 0x1c]
add eax, dword [edi + 0x20]
mov edx, dword [ebx + 4]
cmp edx, eax
jb 0x101014d6
xor esi, esi
dec esi
mov dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x14c]
add eax, 0x140
cmp edx, eax
jbe 0x10100bb2
mov dword [ebp - 0x114], 0x16
push 0
push 0xffffd019
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x101014ef
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 0x10100ceb
cmp eax, 2
jne 0x10100d0c
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.100f41f0
add esp, 0x1c
mov eax, dword [ebp - 0x118]
add eax, 0x34
mov edi, dword [ebp - 0x138]
test edi, edi
je 0x10100e8e
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 0x10100e9c
mov eax, dword [ebp - 0x14c]
mov edx, ecx
jmp 0x10100b8b
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 0x101014d6
jmp 0x10100d1a
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 0x101014d6
mov eax, dword [ebp - 0x130]
mov ebx, dword [eax]
cmp dword [edi + 0x10], 1
mov dword [ebp - 0x11c], ebx
jne 0x10100f06
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 0x10100f0e
mov dword [ebp - 0x138], 0
mov edx, dword [ebp - 0x11c]
mov ebx, edx
cmp ecx, edx
ja 0x10100f67
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 0x10100e3c
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 0x10100e12
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 0x10100f56
mov dword [ebp - 0x114], 0x50
push 0
push 0xffffe001
jmp 0x10100ba5
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.1011e400
add esp, 0x44
test eax, eax
mov edi, dword [ebp - 0x148]
jne 0x101014d6
jmp 0x101014d0
mov eax, dword [ebp - 0x148]
jmp 0x10100f61
mov dword [ebp - 0x138], 0
mov edx, dword [ebp - 0x11c]
mov ebx, edx
cmp ecx, edx
ja 0x10100f67
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.100f41f0
add esp, 0x1c
cmp dword [edi + 0x10], 1
jne 0x10101176
mov esi, dword [ebp - 0x118]
mov ecx, dword [esi + 0x18]
cmp dword [ecx], 0
mov ebx, dword [ebp - 0x13c]
je 0x10101234
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.100bd740
add esp, 0x14
test eax, eax
je 0x1010124e
cmp dword [0x101f2f50], 0
je 0x101017df
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x101017ba
cmp dword [eax + 0x28], 0xffffe006
jne 0x10101289
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x18]
cmp dword [eax], 0
je 0x101012ab
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 0x10101293
jmp 0x101012b5
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 0x10101240
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 0x1010126c
push 0xffffd04b
call fcn.1010aec0
add esp, 4
xor edx, edx
dec edx
jmp 0x1010126e
mov dword [ebp - 0x10c], 0
jmp 0x10101260
mov dword [ebp - 0x10c], 0
xor edx, edx
jmp 0x10101274
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x10c], eax
mov esi, dword [ebp - 0x118]
mov dword [ebp - 0x12c], 0
jmp 0x101012c5
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 0x101014a2
mov dword [ebp - 0x10c], 0
push 0xffffd04b
call fcn.1010aec0
add esp, 4
xor eax, eax
dec eax
mov dword [ebp - 0x12c], eax
jmp 0x101012bf
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.0x10101308.2
jmp dword [eax*4 + 0x101c4214]
and ecx, 0xf
jmp 0x10101317
and ecx, 0x1f
mov dword [ebp - 0x140], ecx
jmp 0x1010137c
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 0x10101364
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 0x1010137c
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 0x1010140f
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 0x1010140b
cmp edi, ecx
jae 0x1010140b
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 0x10101405
inc eax
mov ecx, dword [ebp - 0x11c]
cmp edi, ecx
jb 0x101013cd
jmp 0x1010140b
mov ecx, dword [ebp - 0x11c]
cmp edi, ecx
jb 0x101013b4
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 0x10101479
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 0x1010144c
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 0x1010143d
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 0x101014d6
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 0x101014d6
xor eax, eax
test edi, edi
jne 0x101014f2
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 0x101015c4
mov edi, dword [ebp + 8]
test byte [edi + 0x1d], 4
jne 0x10101517
push dword [edi + 0x174]
call fcn.100d3140
add esp, 4
mov dword [edi + 0x190], 0
movzx eax, word [edi + 0x58]
cmp eax, 0x304
mov ecx, dword [ebp + 0xc]
jb 0x10101576
mov eax, dword [ecx + 8]
cmp byte [eax], 0x14
jne 0x10101576
cmp dword [edi + 0x450], 0
je 0x10101576
mov eax, dword [ecx + 0x10]
cmp dword [eax + 4], 1
jne 0x10101576
mov eax, dword [eax]
cmp byte [eax], 1
jne 0x10101576
cmp dword [edi + 0x628], 0
je 0x1010178e
mov dword [ebp - 0x114], 0xa
push 0
push 0xffffd025
call sym.nss3.dll_PR_SetError
add esp, 8
cmp dword [edi + 0xa24], 1
jne 0x1010159e
push dword [ebp - 0x118]
call fcn.100f05e0
add esp, 4
test eax, eax
je 0x101015b5
cmp dword [edi + 0xa24], 1
je 0x101016cd
cmp dword [edi + 0x60], 0
je 0x101016cd
cmp dword [edi + 0x610], 1
jne 0x101016cd
xor esi, esi
cmp esi, dword [edi + 0x6bc]
sbb esi, esi
jmp 0x10100923
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa24], 1
jne 0x10101634
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.100f1c30
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 0x10101645
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 0x1010166c
push dword [edi + 0x174]
call fcn.100d3140
mov ecx, dword [ebp - 0x118]
add esp, 4
cmp byte [ebp - 0x132], 0
mov edx, dword [ebp - 0x13c]
je 0x101016b7
cmp byte [ebp - 0x131], 0
je 0x1010170a
mov eax, dword [ebp - 0x14c]
cmp dword [esi], eax
jbe 0x1010170a
mov eax, edi
mov dword [edi + 0x190], 0
xor esi, esi
cmp dword [edi + 0xa24], 1
je 0x10100923
push 0x16
push 2
push edi
jmp 0x101008ec
push edx
push dword [ebp - 0x110]
push ecx
push edi
call fcn.100f0790
add esp, 0x10
jmp 0x10101767
cmp dword [0x101f2f50], 0
je 0x101017d5
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x1010179f
mov esi, dword [eax + 0x28]
push dword [ebp - 0x114]
push 2
push edi
call fcn.100f2eb0
add esp, 0xc
push 0
push esi
jmp 0x10100918
mov eax, dword [ebp - 0x110]
cmp eax, 0x17
jne 0x1010174c
xor esi, esi
cmp dword [edi + 0x38], 0
jne 0x10100923
movzx eax, word [edi + 0x58]
cmp eax, 0x304
jb 0x1010176e
cmp dword [edi + 0x60], 0
je 0x1010176e
cmp dword [edi + 0x60c], 2
jne 0x1010176e
push dword [ebp - 0x13c]
push edi
call fcn.1011f6d0
add esp, 8
jmp 0x10101767
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.100fffc0
add esp, 0x18
mov esi, eax
jmp 0x10100923
xor esi, esi
mov dword [edi + 0x190], esi
push 0xa
push 2
push edi
call fcn.100f2eb0
add esp, 0xc
push esi
push 0xffffd036
jmp 0x10100918
mov dword [edi + 0x628], 1
xor esi, esi
jmp 0x10100923
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x101016ee
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x101010d7
call fcn.100029d0
jmp 0x101016da
call fcn.100029d0
jmp 0x101010c3