Function at 0x1001af50
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f3503
mov eax, dword fs:[0]
push eax
mov eax, 0x1580
call fcn.100f0960
mov eax, dword [0x10143964]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x13f0], esi
mov dword [ebp - 0x1420], esi
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x143c], esi
mov dword [ebp - 0x13e4], eax
mov dword [esi], eax
mov dword [ebp - 0x13e8], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
lea eax, [esi + 8]
mov dword [eax], 0
mov dword [ebp - 0x1430], eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esi + 0x20]
mov dword [ebp - 4], 0
mov dword [eax], 0
mov dword [ebp - 0x1434], eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esi + 0x38]
mov byte [esi + 0x50], 0
mov dword [ebp - 0x1438], eax
lea eax, [esi + 0x54]
mov byte [esi + 0x6c], 0
mov dword [ebp - 0x1420], eax
mov byte [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x98], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], 0
cmp dword [esi], 0
mov byte [esi + 0xac], 0
jne 0x1001b08c
mov eax, dword [ebp + 0xc]
mov dword [esi], eax
cmp eax, 2
jne 0x1001b08c
mov eax, dword [esi + 4]
mov edx, 1
test eax, eax
cmove eax, edx
mov dword [esi + 4], eax
xor edx, edx
mov dword [ebp - 0x141c], 0xffffffff
mov dword [ebp - 0x13fc], edx
mov dword [ebp - 0x1418], edx
mov dword [ebp - 0x1414], edx
push 1
push 1
push ecx
lea ecx, [ebp - 0x158c]
mov byte [ebp - 4], 8
call fcn.10004af0
mov eax, dword [ebp - 0x158c]
or edi, 0xffffffff
mov byte [ebp - 4], 9
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x1580], 6
jne 0x1001be76
nop dword [eax]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
lea ecx, [ebp - 0x158c]
mov byte [ebp - 4], 0xa
add ecx, eax
push 0xa
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x158c]
push eax
call fcn.10004660
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
add esp, 0xc
cmp edx, 0x10
cmovae eax, esi
add eax, edi
cmp edx, 0x10
mov dword [ebp - 0x13ec], eax
lea eax, [ebp - 0x28]
cmovae eax, esi
cmovae ecx, esi
mov dword [ebp - 0x13e4], ecx
lea esi, [edi + eax]
cmp esi, ecx
je 0x1001b181
nop word [eax + eax]
movsx eax, byte [esi - 1]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
add esp, 4
test eax, eax
je 0x1001b17b
dec esi
cmp esi, dword [ebp - 0x13e4]
jne 0x1001b160
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
lea eax, [ebp - 0x28]
mov edx, esi
lea ecx, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
sub dword [ebp - 0x13ec], esi
sub edx, eax
mov esi, dword [ebp - 0x13ec]
mov eax, edi
sub eax, edx
cmp eax, esi
cmovb esi, eax
cmp dword [ebp - 0x14], 0x10
cmovae ecx, dword [ebp - 0x28]
sub edi, esi
add ecx, edx
mov dword [ebp - 0x18], edi
sub edi, edx
inc edi
push edi
lea eax, [ecx + esi]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov edx, dword [ebp - 0x14]
test eax, eax
jne 0x1001b207
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x1001be56
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001b200
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001bf7a
push edx
push ecx
jmp 0x1001be4e
mov esi, dword [ebp - 0x28]
lea edi, [ebp - 0x28]
cmp edx, 0x10
cmovae edi, esi
cmp eax, 2
jb 0x1001b438
mov ecx, 0x10101368
sub edi, ecx
mov al, byte [ecx]
cmp al, byte [ecx + edi]
jne 0x1001b233
inc ecx
cmp ecx, 0x1010136a
jne 0x1001b223
cmp ecx, 0x1010136a
jne 0x1001b435
mov eax, dword [ebp - 0x141c]
push 0
sub esp, 0x18
inc eax
mov dword [ebp - 0x141c], eax
mov esi, esp
mov dword [ebp - 0x13f4], esp
mov dword [ebp - 0x13e4], esi
test eax, eax
jns 0x1001b278
neg eax
push eax
lea eax, [ebp - 0x43]
push eax
call fcn.1001a330
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x1001b284
push eax
lea eax, [ebp - 0x43]
push eax
call fcn.1001a330
mov ecx, eax
lea eax, [ebp - 0x43]
mov dword [esi], 0
add esp, 8
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
cmp ecx, eax
je 0x1001b2b0
sub eax, ecx
push eax
push ecx
mov ecx, esi
call fcn.100075f0
or dword [ebp - 0x13e8], 3
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov edi, esp
mov dword [ebp - 0x13e4], edi
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov eax, dword [ebp - 0x18]
cmp eax, 2
jb 0x1001bf8a
add eax, 0xfffffffe
or esi, 0xffffffff
cmp eax, 0xffffffff
cmovb esi, eax
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
mov dword [ebp - 0x13f8], esi
cmovae eax, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x13e4], eax
cmp esi, 0xf
ja 0x1001b325
push esi
push eax
push edi
mov dword [edi + 0x10], esi
call sub.VCRUNTIME140.dll_memmove
mov byte [esi + edi], 0
jmp 0x1001b38b
cmp esi, 0x7fffffff
ja 0x1001bf85
mov eax, esi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x1001b344
mov eax, bind
jmp 0x1001b34f
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x13fc], eax
mov ecx, edi
inc eax
push eax
call fcn.100073a0
mov ecx, dword [ebp - 0x13fc]
mov esi, eax
mov eax, dword [ebp - 0x13f8]
push eax
push dword [ebp - 0x13e4]
mov dword [edi + 0x10], eax
push esi
mov dword [edi + 0x14], ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x13f8]
mov byte [esi + eax], 0
mov dword [edi], esi
mov ecx, dword [ebp - 0x13f0]
lea eax, [ebp - 0x1428]
or dword [ebp - 0x13e8], 4
add esp, 0xc
mov byte [ebp - 4], 0xa
push eax
call sym.datachannel.dll_private:_class_std::shared_ptr_class_rtc::Description::Entry____thiscall_rtc::Description::createEntry_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____enum_rtc::Description::Direction_
mov esi, dword [ebp - 0x1414]
or edi, 0xffffffff
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x13fc], edx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [ebp - 0x1418], edx
mov dword [ebp - 0x1414], ecx
test esi, esi
je 0x1001b3fb
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x1001b3fb
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x1001b3fb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x1424]
test esi, esi
je 0x1001be1c
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x1001be1c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x1001be1c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x1001be1c
mov eax, dword [ebp - 0x18]
cmp edx, 0x10
lea edi, [ebp - 0x28]
cmovae edi, esi
cmp eax, 2
jb 0x1001b46c
mov ecx, 0x1010136c
sub edi, ecx
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1001b460
inc ecx
cmp ecx, 0x1010136e
jne 0x1001b450
cmp ecx, 0x1010136e
jne 0x1001b46c
mov al, 1
jmp 0x1001b46e
xor al, al
test al, al
je 0x1001b71d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp eax, 2
jb 0x1001bf8a
add eax, 0xfffffffe
or edi, 0xffffffff
cmp eax, 0xffffffff
cmovb edi, eax
cmp edx, 0x10
lea eax, [ebp - 0x28]
cmovae eax, esi
add eax, 2
mov dword [ebp - 0x13e4], eax
cmp edi, 0xf
ja 0x1001b4e8
push edi
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], edi
push eax
call sub.VCRUNTIME140.dll_memmove
mov byte [ebp + edi - 0x40], 0
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x13f8], esi
mov dword [ebp - 0x13ec], eax
jmp 0x1001b54b
cmp edi, 0x7fffffff
ja 0x1001bf85
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x1001b508
mov esi, bind
jmp 0x1001b513
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
mov dword [ebp - 0x13f8], esi
push eax
lea ecx, [ebp - 0x40]
call fcn.100073a0
push edi
push dword [ebp - 0x13e4]
mov dword [ebp - 0x13ec], eax
push eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x13ec]
mov dword [ebp - 0x40], eax
mov byte [eax + edi], 0
or dword [ebp - 0x13e8], 8
add esp, 0xc
lea ecx, [ebp - 0x1484]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x14e4], 0x101009b4
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
mov eax, dword [ebp - 0x13e8]
lea ecx, [ebp - 0x14e4]
or eax, 0x10
mov byte [ebp - 4], 0xd
push 0
mov dword [ebp - 0x13e8], eax
mov dword [ebp - 0x13e4], eax
lea eax, [ebp - 0x14d4]
push 0
push eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov eax, dword [ebp - 0x14e4]
mov dword [ebp - 4], 0xe
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x14e4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x14e8], eax
lea eax, [ebp - 0x14d4]
mov ecx, eax
mov dword [ebp - 0x1400], eax
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov ecx, dword [ebp - 0x13ec]
lea eax, [ebp - 0x40]
cmp esi, 0x10
mov byte [ebp - 4], 0xf
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
cmovae eax, ecx
mov dword [ebp - 0x13f4], eax
mov eax, 2
cmp edi, 0x7fffffff
ja 0x1001bf8f
test edi, edi
je 0x1001b66b
push edi
lea ecx, [ebp - 0x1494]
call fcn.100073a0
push edi
push dword [ebp - 0x13f4]
mov esi, eax
push esi
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [edi + esi]
add esp, 0xc
mov dword [ebp - 0x149c], ecx
mov ecx, dword [ebp - 0x14c8]
mov dword [ecx], esi
mov eax, dword [ebp - 0x14b8]
mov ecx, dword [ebp - 0x13ec]
mov dword [eax], esi
mov eax, dword [ebp - 0x14a8]
mov esi, dword [ebp - 0x13f8]
mov dword [eax], edi
mov eax, 3
jmp 0x1001b675
mov dword [ebp - 0x149c], 0
mov dword [ebp - 0x1498], eax
mov byte [ebp - 4], 0x11
cmp esi, 0x10
jb 0x1001b6ad
inc esi
mov eax, ecx
cmp esi, 0x1000
jb 0x1001b6a3
mov ecx, dword [ecx - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001bf7a
push esi
push ecx
call fcn.100f01b2
add esp, 8
push dword [ebp - 0x1430]
lea eax, [ebp - 0x14e4]
push eax
call fcn.100039c0
push dword [ebp - 0x1434]
push eax
call fcn.100039c0
mov eax, dword [ebp - 0x14e4]
add esp, 0x10
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x14e4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x14e8], eax
lea ecx, [ebp - 0x14d4]
call fcn.10005c80
lea ecx, [ebp - 0x14cc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x1484]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
jmp 0x1001be1c
cmp edx, 0x10
lea edi, [ebp - 0x28]
cmovae edi, esi
cmp dword [ebp - 0x18], 2
jb 0x1001b74f
mov ecx, 0x101009ec
sub edi, ecx
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1001b743
inc ecx
cmp ecx, 0x101009ee
jne 0x1001b733
cmp ecx, 0x101009ee
jne 0x1001b74f
mov al, 1
jmp 0x1001b751
xor al, al
test al, al
je 0x1001bdfd
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp eax, 2
jb 0x1001bf8a
add eax, 0xfffffffe
or edi, 0xffffffff
cmp eax, 0xffffffff
cmovb edi, eax
cmp edx, 0x10
lea eax, [ebp - 0x28]
cmovae eax, esi
add eax, 2
mov dword [ebp - 0x13f4], eax
cmp edi, 0xf
ja 0x1001b7b9
push edi
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], edi
push eax
call sub.VCRUNTIME140.dll_memmove
mov byte [ebp + edi - 0x40], 0
mov esi, dword [ebp - 0x40]
jmp 0x1001b812
cmp edi, 0x7fffffff
ja 0x1001bf85
mov esi, edi
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x1001b7d9
mov esi, bind
jmp 0x1001b7e4
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x40]
call fcn.100073a0
push edi
push dword [ebp - 0x13f4]
mov dword [ebp - 0x2c], esi
mov esi, eax
push esi
mov dword [ebp - 0x13e4], eax
mov dword [ebp - 0x30], edi
call sub.VCRUNTIME140.dll_memcpy
mov byte [esi + edi], 0
mov dword [ebp - 0x40], esi
or dword [ebp - 0x13e8], 0x20
add esp, 0xc
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae eax, esi
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x1410]
push eax
call fcn.10023db0
mov esi, dword [ebp - 0x140c]
mov edi, dword [ebp - 0x1410]
push 5
push str.setup
push esi
push edi
call fcn.100044d0
add esp, 0x1c
test al, al
je 0x1001b8b4
mov esi, dword [ebp - 0x1404]
mov edi, dword [ebp - 0x1408]
push 6
push str.active
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001b88e
mov eax, dword [ebp - 0x13f0]
mov dword [eax + 4], 2
jmp 0x1001bdc3
push 7
push str.passive
push esi
push edi
call fcn.100044d0
xor ecx, ecx
add esp, 0x10
test al, al
mov eax, dword [ebp - 0x13f0]
setne cl
mov dword [eax + 4], ecx
jmp 0x1001bdc3
push 0xb
push str.fingerprint
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001bca6
mov esi, dword [ebp - 0x1404]
mov edi, dword [ebp - 0x1408]
cmp esi, 8
jb 0x1001b903
mov ecx, str.sha_256
mov edx, edi
sub edx, ecx
mov al, byte [ecx]
cmp al, byte [edx + ecx]
jne 0x1001b8f7
inc ecx
cmp ecx, 0x1010138c
jne 0x1001b8e7
cmp ecx, 0x1010138c
jne 0x1001b903
mov al, 1
jmp 0x1001b905
xor al, al
test al, al
je 0x1001ba5a
cmp esi, 8
jb 0x1001bf80
lea eax, [esi - 8]
mov dword [ebp - 0x58], 0
or ecx, 0xffffffff
mov dword [ebp - 0x48], 0
cmp eax, 0xffffffff
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
cmovb ecx, eax
lea eax, [edi + 8]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.100075f0
mov edx, dword [ebp - 0x44]
lea edi, [ebp - 0x58]
mov ecx, dword [ebp - 0x48]
lea esi, [ebp - 0x58]
mov eax, dword [ebp - 0x58]
cmp edx, 0x10
mov byte [ebp - 4], 0x13
cmovae edi, dword [ebp - 0x58]
add edi, ecx
cmp edx, 0x10
cmovae esi, eax
cmp esi, edi
je 0x1001b991
nop
movsx eax, byte [esi]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
add esp, 4
test eax, eax
je 0x1001b986
inc esi
cmp esi, edi
jne 0x1001b970
mov edi, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x58]
jmp 0x1001b993
mov edi, ecx
cmp edx, 0x10
lea ecx, [ebp - 0x58]
cmovae ecx, eax
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
mov edx, ecx
sub edx, eax
sub esi, ecx
mov eax, edi
lea ecx, [ebp - 0x58]
sub eax, edx
cmp eax, esi
cmovb esi, eax
cmp dword [ebp - 0x44], 0x10
cmovae ecx, dword [ebp - 0x58]
sub edi, esi
add ecx, edx
mov dword [ebp - 0x48], edi
sub edi, edx
inc edi
push edi
lea eax, [ecx + esi]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [ebp - 0x13f0]
sub esp, 0xc
mov eax, esp
mov dword [eax], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x58]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x48]
movq qword [eax + 0x10], xmm0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call sym.datachannel.dll_public:_void___thiscall_rtc::Description::setFingerprint_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0x12
cmp edx, 0x10
jb 0x1001bdc3
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001ba4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001bf7a
push edx
push ecx
call fcn.100f01b2
add esp, 8
jmp 0x1001bdc3
mov eax, dword [0x1014a500]
test eax, eax
je 0x1001bdc3
cmp dword [eax + 4], 3
jl 0x1001bdc3
mov dword [ebp - method.plog::Record.virtual_0], vtable.plog::Record.0
mov dword [ebp - 0x140], 3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x13c], eax
lea ecx, [ebp - 0xe0]
lea eax, [ebp - 0x130]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0x87
mov dword [ebp - 0x1400], eax
mov dword [ebp - 0x130], 0x10100920
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::constructor_void_]
mov eax, dword [ebp - 0x13e8]
lea ecx, [ebp - 0x130]
or eax, 0x40
mov byte [ebp - 4], 0x14
push 0
mov dword [ebp - 0x13e8], eax
mov dword [ebp - 0x13e4], eax
lea eax, [ebp - 0x12c]
push 0
push eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::constructor_class_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t_____bool_]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 4], 0x15
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x134], eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__::constructor_void_]
xor eax, eax
mov dword [ebp - 0x74], 0
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x150]
mov dword [ebp - 0x8c], 0
push eax
mov dword [ebp - method.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 4
mov dword [ebp - 0x98], str.rtc::Description::Description
mov dword [ebp - 0x94], 0x101008a0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__ftime64]
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x16
push str.Unknown_SDP_fingerprint_format:
push eax
call fcn.10006870
add esp, 0xc
lea ecx, [ebp - 0x14d4]
push 1
call fcn.10004c60
push esi
lea eax, [ebp - 0x14d4]
mov byte [ebp - 4], 0x17
push edi
push eax
call fcn.10004180
add esp, 0xc
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x14d4]
push eax
call fcn.10009890
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x18
jb 0x1001bc09
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.10006870
add esp, 8
lea ecx, [ebp - 0x58]
call fcn.10005c20
mov eax, dword [ebp - 0x14d4]
mov byte [ebp - 4], 0x16
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x14d4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x14d8], eax
lea ecx, [ebp - 0x14d0]
call fcn.10005c80
lea ecx, [ebp - 0x14cc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x1484]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov edi, dword [0x1014a500]
mov esi, dword [edi + 8]
cmp esi, dword [edi + 0xc]
je 0x1001bc96
nop dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x158]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, dword [edi + 0xc]
jne 0x1001bc80
lea ecx, [ebp - 0x158]
call fcn.10006040
jmp 0x1001bdc3
push 9
push str.ice_ufrag
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001bcdf
mov esi, dword [ebp - 0x1438]
cmp byte [esi + 0x18], 0
mov ecx, esi
push dword [ebp - 0x1404]
push dword [ebp - 0x1408]
je 0x1001bcfc
call fcn.100075f0
jmp 0x1001bdc3
push 7
push str.ice_pwd
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001bd21
mov esi, dword [ebp - 0x1420]
jmp 0x1001bcc1
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
call fcn.100075f0
mov byte [esi + 0x18], 1
jmp 0x1001bdc3
push 9
push str.candidate
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001bd7f
mov ecx, dword [ebp - 0x13f0]
sub esp, 0xdc
mov esi, esp
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x1400], esp
push eax
call sym.datachannel.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_rtc::Description::bundleMid_void_
sub esp, 0x18
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.10004d20
mov ecx, esi
mov byte [ebp - 4], 0x12
call sym.datachannel.dll_public:_void___thiscall_rtc::Candidate::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___
mov ecx, dword [ebp - 0x13f0]
call sym.datachannel.dll_public:_void___thiscall_rtc::Description::addCandidate_class_rtc::Candidate_
jmp 0x1001bdc3
push 0x11
push str.end_of_candidates
push esi
push edi
call fcn.100044d0
add esp, 0x10
test al, al
je 0x1001bda3
mov eax, dword [ebp - 0x13f0]
mov byte [eax + 0xac], 1
jmp 0x1001bdc3
mov ecx, dword [ebp - 0x13fc]
test ecx, ecx
je 0x1001bdc3
mov eax, dword [ecx]
cmp dword [ebp - 0x14], 0x10
push dword [ebp - 0x18]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call edx
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0xa
cmp edx, 0x10
jb 0x1001be1c
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001bdf1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001bf7a
push edx
push ecx
call fcn.100f01b2
add esp, 8
jmp 0x1001be1c
mov ecx, dword [ebp - 0x13fc]
test ecx, ecx
je 0x1001be1f
mov eax, dword [ecx]
cmp dword [ebp - 0x14], 0x10
push dword [ebp - 0x18]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x28]
cmovae eax, esi
push eax
call edx
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 9
cmp eax, 0x10
jb 0x1001be56
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1001be4c
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001bf7a
push ecx
push esi
call fcn.100f01b2
add esp, 8
mov eax, dword [ebp - 0x158c]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x1580], 6
je 0x1001b0e0
mov esi, dword [ebp - 0x13f0]
or edi, 0xffffffff
cmp dword [esi + 0x18], 0
jne 0x1001be8b
push 3
push 0x10101408
lea ecx, [esi + 8]
call fcn.100075f0
cmp dword [esi + 0x30], 0
jne 0x1001bf24
call sub.MSVCP140.dll__Xtime_get_ticks
mov dword [ebp - 0x1424], edx
mov edx, 1
mov dword [ebp - 0x5c], 0xffffffff
mov dword [ebp - 0x13dc], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x13dc], eax
inc edx
cmp edx, 0x270
jb 0x1001beb2
lea eax, [ebp - 0x13e0]
mov dword [ebp - 0x13e0], 0x270
lea ecx, [ebp - 0x142c]
mov dword [ebp - 0x142c], eax
mov dword [ebp - 0x1428], 0x20
mov dword [ebp - 0x1424], 0xffffffff
call fcn.1001d2c0
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10025340
add esp, 8
lea ecx, [esi + 0x20]
push eax
call fcn.100062c0
lea ecx, [ebp - 0x40]
call fcn.10005c20
lea ecx, [ebp - 0x158c]
call fcn.10006c80
mov ecx, dword [ebp - 0x1414]
test ecx, ecx
je 0x1001bf5b
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x1001bf5b
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x1414]
lock xadd dword [eax + 8], edi
dec edi
jne 0x1001bf5b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100f06e3
mov esp, ebp
pop ebp
ret 0xc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.1001d720
call fcn.100072b0
call fcn.100072c0
call sub.MSVCP140.dll_void___cdecl_std::_Xbad_alloc_void_
int3