Function at 0x507e50
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
mov eax, dword [0x5cc180]
xor eax, esp
mov dword [esp + 0xac], eax
mov dword [esp], ecx
mov ecx, dword [esp]
call fcn.0050eba0
mov ecx, 0xe746c23d
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0001__SOH__must_be_escaped_to_u0001
mov edi, 0xe
mov ecx, 0xf4339ebe
nop word [eax + eax]
cmp ecx, 0xfc710cf8
jg 0x507f20
cmp ecx, 0xbc0b46b9
jg 0x507fd0
cmp ecx, 0x99536654
jle 0x5080ae
cmp ecx, 0xa900f463
jle 0x50826e
cmp ecx, 0xb04dd39a
jle 0x5085da
cmp ecx, 0xb4ff46b0
jle 0x508af9
cmp ecx, 0xb833a35b
jle 0x50936a
cmp ecx, 0xb833a35c
je 0x50a1e0
cmp ecx, 0xb9a40d22
je 0x50a1f9
cmp ecx, 0xba7e047c
jne 0x507ea0
movzx eax, byte [esp + 0x14]
mov dword [esp + 0x28], eax
mov ecx, 0x92c9c19d
jmp 0x507ea0
cmp ecx, 0x3826d463
jle 0x508040
cmp ecx, 0x600b68b0
jle 0x50810f
cmp ecx, 0x71183dee
jle 0x5082b4
cmp ecx, 0x78115010
jle 0x508651
cmp ecx, 0x7c1b9d12
jle 0x508b2c
cmp ecx, 0x7dbf3b3e
jle 0x50938c
cmp ecx, 0x7dbf3b3f
je 0x50a208
cmp ecx, 0x7e0f5018
je 0x50a224
cmp ecx, 0x7e9b1442
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x321e8b93
mov esi, 0x321e8b93
jne 0x50b1d7
mov esi, 0x3826d464
jmp 0x50b1d7
cmp ecx, 0xd853ea15
jle 0x508161
cmp ecx, 0xe98a362a
jle 0x508358
cmp ecx, 0xf2a4ebaa
jle 0x5086b8
cmp ecx, 0xf9844682
jg 0x508b6e
cmp ecx, 0xf8efdef5
jg 0x5093df
cmp ecx, 0xf2a4ebab
je 0x50a240
cmp ecx, 0xf8e39364
jne 0x50b29c
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0007__BEL__must_be_escaped_to_u0007
jmp 0x507e90
cmp ecx, 0x1dc19132
jg 0x5081de
cmp ecx, 0x1343c72b
jg 0x5083b0
cmp ecx, 0xbcb7d46
jg 0x5086f7
cmp ecx, 0x60d2425
jg 0x508b9c
cmp ecx, 0x4070c95
jg 0x509401
cmp ecx, 0xfc710cf9
je 0x50a275
cmp ecx, 0xff6c2b2c
jne 0x507ea0
cmp byte [esp + 0x15], 0
mov ecx, 0xf8efdef6
jne 0x507ea0
mov ecx, 0xfa15b37d
jmp 0x507ea0
cmp ecx, 0x8dd8a83a
jg 0x508429
cmp ecx, 0x8a30a01e
jg 0x508731
cmp ecx, 0x85a5b323
jg 0x508bca
cmp ecx, 0x84df622d
jg 0x509423
cmp ecx, 0x8091737c
je 0x50a2b3
cmp ecx, 0x842da6d8
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0005__ENQ__must_be_escaped_to_u0005
mov edi, 0xe
mov ecx, 0xd54d92c7
jmp 0x507ea0
cmp ecx, 0x4d95c4d5
jg 0x5084a3
cmp ecx, 0x4435778c
jg 0x508796
cmp ecx, 0x3cacf300
jg 0x508c22
cmp ecx, 0x3b843dee
jg 0x509457
cmp ecx, 0x3826d464
je 0x50a2cc
cmp ecx, 0x38389038
jne 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0xcae233cc
jg 0x50853c
cmp ecx, 0xbfcb6f60
jg 0x5087d5
cmp ecx, 0xbd8796e9
jg 0x508c55
cmp ecx, 0xbd71438c
jg 0x50948d
cmp ecx, 0xbc0b46ba
je 0x50a2de
cmp ecx, 0xbcb03b7b
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x6308a738
mov ecx, 0x1d4c1f6c
mov esi, 0x6308a738
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x1d4c1f6c
jmp 0x50af48
cmp ecx, 0x2a31ed0c
jg 0x508582
cmp ecx, 0x247d84fc
jg 0x50885c
cmp ecx, 0x20c315ce
jg 0x508c95
cmp ecx, 0x1e549bb9
jg 0x5094c1
cmp ecx, 0x1dc19133
je 0x50a2fc
cmp ecx, 0x1e12eccc
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0013__DC3__must_be_escaped_to_u0013
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x99cd11dd
mov esi, 0x99cd11dd
jne 0x50abdd
mov esi, 0xcae233cd
jmp 0x50abdd
cmp ecx, 0xa375bef9
jg 0x5088aa
cmp ecx, 0xa12f5cef
jg 0x508d14
cmp ecx, 0x9f60d7e3
jg 0x5094e3
cmp ecx, 0x99536655
je 0x50a30b
cmp ecx, 0x99cd11dd
jne 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0x69f18a19
jg 0x5088e9
cmp ecx, 0x63535d75
jg 0x508d54
cmp ecx, 0x6172808f
jg 0x509556
cmp ecx, 0x600b68b1
je 0x50a33f
cmp ecx, 0x614eef51
jne 0x507ea0
vmovsd xmm0, qword [0x5b6e6c]
vmovsd qword [esp + 0x64], xmm0
vmovups xmm0, xmmword [0x5b6e5c]
vmovups xmmword [esp + 0x54], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0050f680
xor al, 1
mov byte [esp + 0x1f], al
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x4f7a9b92
mov ecx, 0x28f2b16c
mov esi, 0x4f7a9b92
test ebp, edx
sete dl
je 0x50aff8
mov esi, 0x28f2b16c
jmp 0x50aff8
cmp ecx, 0xddbab43a
jg 0x508923
cmp ecx, 0xda735241
jg 0x508d95
cmp ecx, 0xd9892ffe
jg 0x5095b5
cmp ecx, 0xd853ea16
je 0x50a35b
cmp ecx, 0xd8f35d25
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x11f3c1c6
cmp eax, 0xb
jl 0x507ea0
mov ecx, 0x7e0f5018
jmp 0x507ea0
cmp ecx, 0x1876a9a4
jg 0x50896f
cmp ecx, 0x14ed43d4
jg 0x508e01
cmp ecx, 0x142aa334
jg 0x5095dc
cmp ecx, 0x1343c72c
je 0x50a377
cmp ecx, 0x13dd538f
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xc65aeb9
mov esi, 0xc65aeb9
jne 0x50b229
mov esi, 0x3639486f
jmp 0x50b229
cmp ecx, 0x95e94888
jg 0x5089bd
cmp ecx, 0x8facc40d
jg 0x508e46
cmp ecx, 0x8f37775f
jg 0x50962c
cmp ecx, 0x8dd8a83b
je 0x50a386
cmp ecx, 0x8eef341a
jne 0x507ea0
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x13dd538f
mov esi, 0x13dd538f
jne 0x50ad6c
mov esi, 0x3639486f
jmp 0x50ad6c
cmp ecx, 0x545aa537
jg 0x508a09
cmp ecx, 0x51c4ac40
jg 0x508e84
cmp ecx, 0x4f3f91c0
jg 0x5096bc
cmp ecx, 0x4d95c4d6
je 0x50a395
cmp ecx, 0x4e07d8b6
jne 0x507ea0
mov eax, ebx
shr eax, 6
mov ecx, dword [esp]
add ecx, 0x2c
mov edx, eax
not dl
and dl, 0x41
mov dh, al
and dh, 0xbe
or dh, dl
xor dh, 0x81
and al, 0xc0
or al, dh
movsx eax, al
push eax
call fcn.0041ec00
mov ecx, dword [esp]
add ecx, 0x2c
mov eax, ebx
xor al, 0xc0
and al, bl
mov edx, eax
not dl
and dl, 0xbe
mov ah, al
and ah, 0x41
or ah, dl
xor ah, 0x3e
and al, 0x80
or al, ah
movsx eax, al
push eax
call fcn.0041ec00
mov ecx, 0x8eef341a
jmp 0x507ea0
cmp ecx, 0xd21f31ff
jg 0x508a6e
cmp ecx, 0xcefbb484
jg 0x508ead
cmp ecx, 0xcc070f76
jg 0x5096ee
cmp ecx, 0xcae233cd
je 0x50a3a7
cmp ecx, 0xcbdbdf13
jne 0x507ea0
mov ecx, 0x4767cbc8
jmp 0x507ea0
cmp ecx, 0x321e8b92
jg 0x508aba
cmp ecx, 0x2c06f2cc
jg 0x508ee3
cmp ecx, 0x2b647557
jg 0x509721
cmp ecx, 0x2a31ed0d
je 0x50a3c0
cmp ecx, 0x2a79bdd6
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0xec56a401
cmp eax, 0x22
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
cmp ecx, 0xad9d640e
jg 0x508f16
cmp ecx, 0xac3585be
jg 0x509743
cmp ecx, 0xa900f464
je 0x50a3d9
cmp ecx, 0xa9ffac17
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_u_must_be_followed_by_4_hex_digits
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov esi, edx
xor esi, 0xfffffffe
test esi, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xcfc83422
mov edi, 0xcfc83422
jne 0x508cf7
mov edi, 0xd7deb5b0
jmp 0x508cf7
cmp ecx, 0x73f924ee
jg 0x508f56
cmp ecx, 0x72b019ed
jg 0x509777
cmp ecx, 0x71183def
je 0x50a3f3
cmp ecx, 0x71e3dfcd
jne 0x507ea0
vmovaps xmm0, xmmword [0x5b7060]
vmovups xmmword [esp + 0x3c], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0050f680
mov ecx, 0x6c59c552
test al, al
jne 0x507ea0
mov ecx, 0xf1bc89ad
jmp 0x507ea0
cmp ecx, 0xf11bbd4e
jg 0x508f95
cmp ecx, 0xec56a400
jg 0x5097a8
cmp ecx, 0xe98a362b
je 0x50a3fd
cmp ecx, 0xe9b41ccd
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_forbidden_character_after_backslash
jmp 0x507e90
cmp ecx, 0x108eb1de
jg 0x508fbe
cmp ecx, 0x10069d72
jg 0x5097f3
cmp ecx, 0xbcb7d47
je 0x50a40a
cmp ecx, 0xc65aeb9
jne 0x507ea0
mov ecx, 0xcfc03b53
jmp 0x507ea0
cmp ecx, 0x8c273948
jg 0x508ff9
cmp ecx, 0x8b46ba6a
jg 0x509825
cmp ecx, 0x8a30a01f
je 0x50a414
cmp ecx, 0x8b1b502c
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x7a310aae
mov ecx, 0x10e94506
mov esi, 0x7a310aae
cmp edx, 0xffffffff
sete dl
je 0x50a63c
mov esi, 0x10e94506
jmp 0x50a63c
cmp ecx, 0x4767cbc7
jg 0x50902a
cmp ecx, 0x44eb6a99
jg 0x5098b3
cmp ecx, 0x4435778d
je 0x50a430
cmp ecx, 0x44cc0d1a
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000C__FF__must_be_escaped_to_u000C_or__f
jmp 0x507e90
cmp ecx, 0xc699c8c3
jg 0x509058
cmp ecx, 0xc298b318
jg 0x5098e7
cmp ecx, 0xbfcb6f61
je 0x50a43a
cmp ecx, 0xc1e4df4c
jne 0x507ea0
mov ecx, dword [esp]
call fcn.0050d360
mov ecx, dword [0x5d1850]
mov edx, dword [0x5d1854]
lea ebp, [ecx + 1]
imul ebp, ecx
not ebp
or ebp, 0xfffffffe
cmp ebp, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xba7e047c
mov esi, 0xba7e047c
jne 0x508843
mov esi, 0x4d95c4d6
cmp ebp, 0xffffffff
cmovne ecx, esi
cmp edx, 0xa
cmovge ecx, esi
cmp eax, 0x75
sete byte [esp + 0x14]
jmp 0x507ea0
cmp ecx, 0x285daa4c
jg 0x5090ba
cmp ecx, 0x267ef749
jg 0x50991d
cmp ecx, 0x247d84fd
je 0x50a477
cmp ecx, 0x261350fd
jne 0x507ea0
mov eax, dword [esp + 0x20]
shl eax, 0xa
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + eax]
add ebx, 0xfca02400
mov ecx, 0x59da300a
jmp 0x507ea0
cmp ecx, 0xa5526a02
jg 0x509116
cmp ecx, 0xa44061d4
jg 0x509944
cmp ecx, 0xa375befa
je 0x50a486
cmp ecx, 0xa377314d
jne 0x507ea0
mov edi, 4
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0x6ea4cee0
jg 0x50916e
cmp ecx, 0x6cb729db
jg 0x509966
cmp ecx, 0x69f18a1a
je 0x50a4a4
cmp ecx, 0x6c59c552
jne 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
cmp ecx, 0xe5ecd2c5
jg 0x5091ae
cmp ecx, 0xe38efc47
jg 0x50999a
cmp ecx, 0xddbab43b
je 0x50a4c1
cmp ecx, 0xde2baa17
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xf11bbd4f
cmp eax, 0x11
jl 0x507ea0
mov ecx, 0x2404f436
jmp 0x507ea0
cmp ecx, 0x1ccb7214
jg 0x5091e8
cmp ecx, 0x190c4e9a
jg 0x5099cd
cmp ecx, 0x1876a9a5
je 0x50a4d0
cmp ecx, 0x1888f4fb
jne 0x507ea0
cmp byte [esp + 0x19], 0
mov ecx, 0x7a7b5973
jne 0x5089b0
mov ecx, 0x51c4ac41
mov dword [esp + 0x2c], 0
jmp 0x507ea0
cmp ecx, 0x975bccab
jg 0x509226
cmp ecx, 0x96c41eea
jg 0x509a34
cmp ecx, 0x95e94889
je 0x50a4da
cmp ecx, 0x9625fc6f
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xad9d640f
cmp eax, 0x5d
jl 0x507ea0
mov ecx, 0x2f7f9aee
jmp 0x507ea0
cmp ecx, 0x59da3009
jg 0x509267
cmp ecx, 0x56e04d0e
jg 0x509a66
cmp ecx, 0x545aa538
je 0x50a4f6
cmp ecx, 0x5613d338
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x8b7bba30
mov ecx, 0xbd8796ea
mov esi, 0x8b7bba30
cmp edx, 0xffffffff
sete dl
je 0x50aff8
mov esi, 0xbd8796ea
jmp 0x50aff8
cmp ecx, 0xd51c2117
jg 0x5092c8
cmp ecx, 0xd45ecbba
jg 0x509a9a
cmp ecx, 0xd21f3200
je 0x50a517
cmp ecx, 0xd4296cb8
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0xbdc4551c
cmp eax, 0x66
jl 0x507ea0
mov ecx, 0xf1f1743a
jmp 0x507ea0
cmp ecx, 0x3639486e
jg 0x509334
cmp ecx, 0x342e8e65
jg 0x509b15
cmp ecx, 0x321e8b93
je 0x50a526
cmp ecx, 0x338fd76b
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001A__SUB__must_be_escaped_to_u001A
jmp 0x507e90
cmp ecx, 0xb29fcfe1
jg 0x509b3c
cmp ecx, 0xb04dd39b
je 0x50a579
cmp ecx, 0xb24e19f0
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0003__ETX__must_be_escaped_to_u0003
jmp 0x507e90
cmp ecx, 0x7a310aad
jg 0x509b70
cmp ecx, 0x78115011
je 0x50a597
cmp ecx, 0x78258258
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x5613d338
cmp eax, 0xe0
jl 0x507ea0
mov ecx, 0x5b04c637
jmp 0x507ea0
cmp ecx, 0xfa15b37c
jg 0x509ba8
cmp ecx, 0xf9844683
je 0x50a5d4
cmp ecx, 0xf9e0f994
jne 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
cmp ecx, 0x7e4d213
jg 0x509bcf
cmp ecx, 0x60d2426
je 0x50a5f2
cmp ecx, 0x7b79e73
jne 0x507ea0
mov ecx, 0x14dbd84d
jmp 0x507ea0
cmp ecx, 0x86626482
jg 0x509bf1
cmp ecx, 0x85a5b324
je 0x50a610
cmp ecx, 0x8638c77b
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x142aa335
mov ecx, 0x6cb729dc
mov esi, 0x142aa335
test ebp, edx
sete dl
je 0x50a63c
mov esi, 0x6cb729dc
jmp 0x50a63c
cmp ecx, 0x3f863a8a
jg 0x509c25
cmp ecx, 0x3cacf301
je 0x50a653
cmp ecx, 0x3f25f989
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0009__HT__must_be_escaped_to_u0009_or__t
jmp 0x507e90
cmp ecx, 0xbdc4551b
jg 0x509c4c
cmp ecx, 0xbd8796ea
je 0x50a66f
cmp ecx, 0xbd9a63da
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x342e8e66
cmp eax, 5
jl 0x507ea0
mov ecx, 0xb3fecad1
jmp 0x507ea0
cmp ecx, 0x23f3038d
jg 0x509c84
cmp ecx, 0x20c315cf
je 0x50a6a7
cmp ecx, 0x231d7b76
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_surrogate_UD800..UDBFF_must_be_followed_by_UDC00..UDFFF
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov esi, edx
xor esi, 0xfffffffe
test esi, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x4a5ccdd9
mov edi, 0x4a5ccdd9
jne 0x508cf7
mov edi, 0x545aa538
test esi, edx
cmovne ecx, edi
cmp eax, 0xa
cmovge ecx, edi
mov edi, 0xe
mov dword [esp + 0x10], 1
jmp 0x507ea0
cmp ecx, 0xa1532535
jg 0x509cb8
cmp ecx, 0xa12f5cf0
je 0x50a6c3
cmp ecx, 0xa13092bc
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x97ef43af
cmp eax, 0x2f
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
cmp ecx, 0x655a6246
jg 0x509cda
cmp ecx, 0x63535d76
je 0x50a6cd
cmp ecx, 0x6413e448
jne 0x507ea0
mov ecx, 0x97702e36
cmp dword [esp + 0x20], 0xd800
jge 0x507ea0
mov ecx, 0xa56e829c
jmp 0x507ea0
cmp ecx, 0xdc7a50b7
jg 0x509d0e
cmp ecx, 0xda735242
je 0x50a6e9
cmp ecx, 0xdb189fc1
jne 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
movsx eax, bl
push eax
call fcn.0041ec00
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xcefbb485
mov esi, 0xcefbb485
je 0x50ad67
jmp 0x50ad6c
cmp ecx, 0x16b61dc7
jg 0x509d44
cmp ecx, 0x14ed43d5
je 0x50a705
cmp ecx, 0x15c83ef6
jne 0x507ea0
mov ecx, dword [esp]
call fcn.0050ee40
mov ebx, eax
cmp eax, 0xffffffff
je 0x50b2b3
mov ecx, 0x6413e448
mov dword [esp + 0x20], ebx
jmp 0x507ea0
cmp ecx, 0x92960fba
jg 0x509d78
cmp ecx, 0x8facc40e
je 0x50a71c
cmp ecx, 0x91d03c1a
jne 0x507ea0
cmp dword [esp + 4], 0
mov ecx, 0x1e549bba
jle 0x507ea0
mov ecx, 0x6ec46790
jmp 0x507ea0
cmp ecx, 0x5325dee4
jg 0x509daa
cmp ecx, 0x51c4ac41
je 0x50a738
cmp ecx, 0x521b6886
je 0x507e90
jmp 0x507ea0
cmp ecx, 0xcfc83421
jg 0x509ddc
cmp ecx, 0xcefbb485
je 0x50a74d
cmp ecx, 0xcfc03b53
jne 0x507ea0
mov dword [esp + 0x10], 5
mov ecx, 0xe5ecd2c6
jmp 0x507ea0
cmp ecx, 0x2f6d623b
jg 0x509e18
cmp ecx, 0x2c06f2cd
je 0x50a757
cmp ecx, 0x2c58c0c7
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001B__ESC__must_be_escaped_to_u001B
jmp 0x507e90
cmp ecx, 0xae555da6
jg 0x509e4e
cmp ecx, 0xad9d640f
je 0x50a761
cmp ecx, 0xadef2a3e
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x78115011
cmp eax, 0x1d
jl 0x507ea0
mov ecx, 0x92960fbb
jmp 0x507ea0
cmp ecx, 0x7783b5fd
jg 0x509e82
cmp ecx, 0x73f924ef
je 0x507e86
cmp ecx, 0x76156718
jne 0x507ea0
mov ecx, 0x37ae4541
cmp ebx, 0x10000
jl 0x507ea0
mov ecx, 0x7783b5fe
jmp 0x507ea0
cmp ecx, 0xf1f17439
jg 0x509ea9
cmp ecx, 0xf11bbd4f
je 0x50a77d
cmp ecx, 0xf1bc89ad
je 0x507e90
jmp 0x507ea0
cmp ecx, 0x11f3c1c5
jg 0x509edd
cmp ecx, 0x108eb1df
je 0x50a78c
cmp ecx, 0x10e94506
jne 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 8
call fcn.0041ec00
mov ecx, 0x7a310aae
jmp 0x507ea0
cmp ecx, 0x8d79e245
jg 0x509f33
cmp ecx, 0x8c273949
je 0x50a7a8
cmp ecx, 0x8c9d3b95
jne 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 0x5c
jmp 0x50b151
cmp ecx, 0x4a5ccdd8
jg 0x509f5a
cmp ecx, 0x4767cbc8
je 0x50a7b2
cmp ecx, 0x4982bc01
jne 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0xc9a95046
jg 0x509f8e
cmp ecx, 0xc699c8c4
je 0x50a803
cmp ecx, 0xc8f95aa1
jne 0x507ea0
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x1e12eccc
mov esi, 0x1e12eccc
jne 0x50ad6c
mov esi, 0xcae233cd
jmp 0x50ad6c
cmp ecx, 0x28f2b16b
jg 0x509fe5
cmp ecx, 0x285daa4d
je 0x50a821
cmp ecx, 0x28ec9bf6
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x57f8293
mov esi, 0x57f8293
jne 0x50b229
jmp 0x50afae
cmp ecx, 0xa7b3bec7
jg 0x50a019
cmp ecx, 0xa5526a03
je 0x50a856
cmp ecx, 0xa56e829c
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0xc298b319
mov ecx, 0x71183def
mov esi, 0xc298b319
test ebp, edx
sete dl
je 0x50aff8
mov esi, 0x71183def
jmp 0x50aff8
cmp ecx, 0x6ee54d3c
jg 0x50a04d
cmp ecx, 0x6ea4cee1
je 0x50a870
cmp ecx, 0x6ec46790
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x73f924ef
cmp eax, 2
jl 0x507ea0
mov ecx, 0x8b46ba6b
jmp 0x507ea0
cmp ecx, 0xe84870c6
jg 0x50a074
cmp ecx, 0xe5ecd2c6
je 0x50a8ae
cmp ecx, 0xe746c23d
jne 0x507ea0
mov ecx, dword [esp]
call fcn.0050d360
mov dword [esp + 4], eax
mov ecx, 0xd853ea16
jmp 0x507ea0
cmp ecx, 0x1d4c1f6b
jg 0x50a0c9
cmp ecx, 0x1ccb7215
je 0x50a8c0
cmp ecx, 0x1d4a1957
jne 0x507ea0
cmp byte [esp + 0x1e], 0
mov ecx, 0xa7b3bec8
jne 0x507ea0
mov ecx, 0xf9331d22
jmp 0x507ea0
cmp ecx, 0x97ef43ae
jg 0x50a12c
cmp ecx, 0x975bccac
je 0x50a8cf
cmp ecx, 0x97702e36
jne 0x507ea0
mov ecx, 0xcfe461e0
cmp dword [esp + 0x20], 0xdc00
jl 0x507ea0
mov ecx, 0xa56e829c
jmp 0x507ea0
cmp ecx, 0x5c00fed0
jg 0x50a151
cmp ecx, 0x59da300a
je 0x50a8eb
cmp ecx, 0x5b04c637
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x8f9b09b9
mov esi, 0x8f9b09b9
jne 0x50b229
mov esi, 0x7c1b9d13
jmp 0x50b229
cmp ecx, 0xd55c1957
jg 0x50a185
cmp ecx, 0xd51c2118
je 0x50a91f
cmp ecx, 0xd54d92c7
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0005__ENQ__must_be_escaped_to_u0005
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x38389038
mov esi, 0x38389038
jne 0x50abdd
mov esi, 0x842da6d8
jmp 0x50abdd
cmp ecx, 0x37ae4540
jg 0x50a1be
cmp ecx, 0x3639486f
je 0x50a93b
cmp ecx, 0x36bda7c8
jne 0x507ea0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov ecx, 0x1080147e
jmp 0x507ea0
cmp ecx, 0xb4ff46b1
je 0x50a945
cmp ecx, 0xb77d708c
jne 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
cmp ecx, 0x7c1b9d13
je 0x50a98e
cmp ecx, 0x7d0ca715
jne 0x507ea0
vmovsd xmm0, qword [0x5b6e54]
vmovsd qword [esp + 0x7c], xmm0
vmovups xmm0, xmmword [0x5b6e44]
vmovups xmmword [esp + 0x6c], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0050f680
mov ecx, 0x9f621bf3
jmp 0x507ea0
cmp ecx, 0xf8efdef6
je 0x50a9c1
cmp ecx, 0xf9331d22
jne 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
cmp ecx, 0x4070c96
je 0x50a9ff
cmp ecx, 0x57f8293
jne 0x507ea0
mov ecx, 0x8eef341a
jmp 0x507ea0
cmp ecx, 0x84df622e
je 0x50aa15
cmp ecx, 0x854deaa4
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xd8f35d25
cmp eax, 0xd
jl 0x507ea0
mov ecx, 0x10069d73
jmp 0x507ea0
cmp ecx, 0x3b843def
je 0x50aa59
cmp ecx, 0x3c436341
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x61728090
cmp eax, 0xf1
jl 0x507ea0
mov ecx, 0xb04dd39b
jmp 0x507ea0
cmp ecx, 0xbd71438d
je 0x50aa75
cmp ecx, 0xbd7c9995
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x9f60d7e4
cmp eax, 0x1b
jl 0x507ea0
mov ecx, 0x63535d76
jmp 0x507ea0
cmp ecx, 0x1e549bba
je 0x50aaba
cmp ecx, 0x209cf57b
jne 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0x9f60d7e4
je 0x50aad4
cmp ecx, 0x9f621bf3
jne 0x507ea0
vmovsd xmm0, qword [0x5b6e54]
vmovsd qword [esp + 0x7c], xmm0
vmovups xmm0, xmmword [0x5b6e44]
vmovups xmmword [esp + 0x6c], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0050f680
xor al, 1
mov byte [esp + 0x1e], al
mov eax, dword [0x5d1850]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x1d4a1957
mov ecx, 0x7d0ca715
mov esi, 0x1d4a1957
jmp 0x50ab0f
cmp ecx, 0x61728090
je 0x50aaf0
cmp ecx, 0x6308a738
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0012__DC2__must_be_escaped_to_u0012
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xa12f5cf0
mov esi, 0xa12f5cf0
jne 0x50ab63
mov esi, 0x1d4c1f6c
jmp 0x50ab63
cmp ecx, 0xd9892fff
je 0x50ab25
cmp ecx, 0xda1744cf
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0000__NUL__must_be_escaped_to_u0000
jmp 0x507e90
cmp ecx, 0x142aa335
je 0x50ab2f
cmp ecx, 0x14dbd84d
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xf9e0f994
mov esi, 0xf9e0f994
jne 0x50b229
jmp 0x50a46d
cmp ecx, 0x8f377760
je 0x50ab78
cmp ecx, 0x8f9b09b9
jne 0x507ea0
vmovaps xmm0, xmmword [0x5b7050]
vmovups xmmword [esp + 0x94], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0050f680
mov edx, dword [0x5d1850]
mov ecx, dword [0x5d1854]
lea ebp, [edx + 1]
imul ebp, edx
not ebp
or ebp, 0xfffffffe
cmp ebp, 0xffffffff
sete dl
cmp ecx, 0xa
setl ah
xor ah, dl
mov edx, 0x5347c7e8
mov esi, 0x5347c7e8
jne 0x5096a3
mov esi, 0x7c1b9d13
cmp ebp, 0xffffffff
cmovne edx, esi
cmp ecx, 0xa
cmovge edx, esi
xor al, 1
mov byte [esp + 0x1c], al
mov ecx, edx
jmp 0x507ea0
cmp ecx, 0x4f3f91c1
je 0x50ab82
cmp ecx, 0x4f7a9b92
jne 0x507ea0
cmp byte [esp + 0x1f], 0
mov ecx, 0xb29fcfe2
jne 0x507ea0
mov ecx, 0x84df622e
jmp 0x507ea0
cmp ecx, 0xcc070f77
je 0x50ab9e
cmp ecx, 0xcea501ba
jne 0x507ea0
mov ecx, 0xa44061d5
cmp ebx, 0x80
jl 0x507ea0
mov ecx, 0xe566ea1d
jmp 0x507ea0
cmp ecx, 0x2b647558
je 0x50abf5
cmp ecx, 0x2b7ae3fb
jne 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
cmp ecx, 0xac3585bf
je 0x50ac04
cmp ecx, 0xacc5189b
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xbd9a63da
cmp eax, 7
jl 0x507ea0
mov ecx, 0x20c315cf
jmp 0x507ea0
cmp ecx, 0x72b019ee
je 0x50ac41
cmp ecx, 0x7374b908
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0016__SYN__must_be_escaped_to_u0016
mov edi, 0xe
mov ecx, 0x7e4d214
jmp 0x507ea0
cmp ecx, 0xec56a401
je 0x50ac82
cmp ecx, 0xed345271
jne 0x507ea0
vmovaps xmm0, xmmword [0x5b7040]
vmovups xmmword [esp + 0x84], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0050f680
mov ecx, 0xd4ed5fcc
jmp 0x507ea0
cmp ecx, 0x10069d73
je 0x50ac8f
cmp ecx, 0x1080147e
jne 0x507ea0
cmp dword [esp + 0x34], 0
mov ecx, 0xe84870c7
je 0x507ea0
mov ecx, 0xe5ecd2c6
jmp 0x507ea0
cmp ecx, 0x8b46ba6b
je 0x50acab
cmp ecx, 0x8b7bba30
jne 0x507ea0
mov dword [esp + 0xa4], 0x80
mov dword [esp + 0xa8], 0xbf
mov ecx, dword [esp]
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.0050f680
xor al, 1
mov byte [esp + 0x1b], al
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0xa5526a03
mov ecx, 0xbd8796ea
mov esi, 0xa5526a03
test ebp, edx
sete dl
je 0x50989c
mov esi, 0xbd8796ea
cmp dword [0x5d1854], 0xa
cmovl ecx, esi
setl dh
xor dh, dl
cmovne ecx, eax
jmp 0x507ea0
cmp ecx, 0x44eb6a9a
je 0x50acc7
cmp ecx, 0x45bcdd60
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0xe98a362b
cmp eax, 0x66
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
cmp ecx, 0xc298b319
je 0x50acd4
cmp ecx, 0xc3c75aa8
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x9625fc6f
cmp eax, 0xe1
jl 0x507ea0
mov ecx, 0xa375befa
jmp 0x507ea0
cmp ecx, 0x267ef74a
je 0x50ad16
cmp ecx, 0x27df1d46
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0015__NAK__must_be_escaped_to_u0015
jmp 0x507e90
cmp ecx, 0xa44061d5
je 0x50ad37
cmp ecx, 0xa5324d48
jne 0x507ea0
mov ecx, 0x28ec9bf6
jmp 0x507ea0
cmp ecx, 0x6cb729dc
je 0x50ad7f
cmp ecx, 0x6ce847c9
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xbd7c9995
cmp eax, 0x22
jl 0x507ea0
mov ecx, 0xc3c75aa8
jmp 0x507ea0
cmp ecx, 0xe38efc48
je 0x50ad8e
cmp ecx, 0xe566ea1d
jne 0x507ea0
mov ecx, 0x4e07d8b6
cmp ebx, 0x800
jl 0x507ea0
mov ecx, 0x76156718
jmp 0x507ea0
cmp ecx, 0x190c4e9b
je 0x50adaa
cmp ecx, 0x19a105a2
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xa900f464
mov ebp, 0xa900f464
jne 0x509a1a
mov ebp, 0x3f863a8b
cmp edx, 0xffffffff
cmovne ecx, ebp
cmp eax, 0xa
movzx eax, byte [esp + 0xf]
mov byte [esp + 0x18], al
cmovge ecx, ebp
jmp 0x507ea0
cmp ecx, 0x96c41eeb
je 0x50adc6
cmp ecx, 0x96fc8a49
jne 0x507ea0
cmp byte [esp + 0x1d], 0
mov ecx, 0x521b6886
jne 0x507ea0
mov ecx, 0xbfcb6f61
jmp 0x507ea0
cmp ecx, 0x56e04d0f
je 0x50ade2
cmp ecx, 0x5807d0a8
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x91d03c1a
cmp eax, 4
jl 0x507ea0
mov ecx, 0xacc5189b
jmp 0x507ea0
cmp ecx, 0xd45ecbbb
je 0x50adec
cmp ecx, 0xd4ed5fcc
jne 0x507ea0
vmovaps xmm0, xmmword [0x5b7040]
vmovups xmmword [esp + 0x84], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0050f680
xor al, 1
mov byte [esp + 0x1d], al
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x96fc8a49
mov ecx, 0xed345271
mov esi, 0x96fc8a49
test ebp, edx
sete dl
je 0x50aff8
mov esi, 0xed345271
jmp 0x50aff8
cmp ecx, 0x342e8e66
je 0x50adfe
cmp ecx, 0x35ef92eb
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_ill_formed_UTF_8_byte
jmp 0x507e90
cmp ecx, 0xb29fcfe2
je 0x507e90
cmp ecx, 0xb3fecad1
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x285daa4d
cmp eax, 6
jl 0x507ea0
mov ecx, 0xae555da7
jmp 0x507ea0
cmp ecx, 0x7a310aae
je 0x50ae0d
cmp ecx, 0x7a7b5973
jne 0x507ea0
cmp dword [esp + 0x20], 0xe000
setl byte [esp + 0x1a]
movzx eax, byte [esp + 0x1a]
mov dword [esp + 0x2c], eax
mov ecx, 0x51c4ac41
jmp 0x507ea0
cmp ecx, 0xfa15b37d
je 0x50ae57
cmp ecx, 0xfbe4ef9b
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0018__CAN__must_be_escaped_to_u0018
jmp 0x507e90
cmp ecx, 0x7e4d214
je 0x50ae8b
cmp ecx, 0x90bffb0
jne 0x507ea0
mov ecx, 0x8c273949
jmp 0x507ea0
cmp ecx, 0x86626483
je 0x50aedd
cmp ecx, 0x88413d2f
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x8b1b502c
cmp eax, 0x62
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
cmp ecx, 0x3f863a8b
je 0x50aeec
cmp ecx, 0x4272c903
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0014__DC4__must_be_escaped_to_u0014
jmp 0x507e90
cmp ecx, 0xbdc4551c
je 0x50af00
cmp ecx, 0xbf39007a
jne 0x507ea0
cmp dword [esp + 0x24], 0xe000
setl byte [esp + 0x17]
movzx eax, byte [esp + 0x17]
mov dword [esp + 0x30], eax
mov ecx, 0xca021f93
jmp 0x507ea0
cmp ecx, 0x23f3038e
je 0x50af1c
cmp ecx, 0x2404f436
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xddbab43b
cmp eax, 0x12
jl 0x507ea0
mov ecx, 0xbcb03b7b
jmp 0x507ea0
cmp ecx, 0xa1532536
je 0x50af5f
cmp ecx, 0xa1630925
jne 0x507ea0
mov ecx, 0x99536655
jmp 0x507ea0
cmp ecx, 0x655a6247
je 0x50af7b
cmp ecx, 0x675ddae7
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xde2baa17
cmp eax, 0x13
jl 0x507ea0
mov ecx, 0x108eb1df
jmp 0x507ea0
cmp ecx, 0xdc7a50b8
je 0x50afb8
cmp ecx, 0xdd6385b6
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xbd71438d
cmp eax, 0xf4
je 0x507ea0
mov ecx, 0x35ef92eb
jmp 0x507ea0
cmp ecx, 0x16b61dc8
je 0x507e90
cmp ecx, 0x178bf07d
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0xc9a95047
cmp eax, 0x75
jl 0x507ea0
mov ecx, 0x190c4e9b
jmp 0x507ea0
cmp ecx, 0x92960fbb
je 0x50b00f
cmp ecx, 0x92c9c19d
jne 0x507ea0
mov ecx, 0xf2a4ebab
test byte [esp + 0x28], 1
jne 0x507ea0
mov ecx, 0x8dd8a83b
jmp 0x507ea0
cmp ecx, 0x5325dee5
je 0x50b01e
cmp ecx, 0x5347c7e8
jne 0x507ea0
cmp byte [esp + 0x1c], 0
mov ecx, 0x8638c77b
jne 0x507ea0
mov ecx, 0x1876a9a5
jmp 0x507ea0
cmp ecx, 0xcfc83422
je 0x50b03a
cmp ecx, 0xcfe461e0
jne 0x507ea0
mov ecx, dword [esp]
call fcn.0050d360
mov ecx, 0xfc710cf9
cmp eax, 0x5c
je 0x509e0b
mov ecx, 0x92c9c19d
mov dword [esp + 0x28], 0
jmp 0x507ea0
cmp ecx, 0x2f6d623c
je 0x50b044
cmp ecx, 0x2f7f9aee
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xbc0b46ba
cmp eax, 0xc2
jl 0x507ea0
mov ecx, 0x78258258
jmp 0x507ea0
cmp ecx, 0xae555da7
je 0x50b04e
cmp ecx, 0xb0261bf2
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xb9a40d22
cmp eax, 9
jl 0x507ea0
mov ecx, 0x3f25f989
jmp 0x507ea0
cmp ecx, 0x7783b5fe
je 0x50b05d
cmp ecx, 0x77b09aa6
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000E__SO__must_be_escaped_to_u000E
jmp 0x507e90
cmp ecx, 0xf1f1743a
je 0x50b10a
cmp ecx, 0xf281fef4
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x44eb6a9a
cmp eax, 0x6e
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
cmp ecx, 0x11f3c1c6
je 0x50b126
cmp ecx, 0x12f44557
jne 0x507ea0
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x37dfa728
mov esi, 0x37dfa728
jne 0x50ad6c
mov esi, 0x2f6d623c
jmp 0x50ad6c
cmp ecx, 0x8d79e246
je 0x50b135
cmp ecx, 0x8dd0dd1c
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_u_must_be_followed_by_4_hex_digits
jmp 0x50ad20
cmp ecx, 0x4a5ccdd9
je 0x50b13f
cmp ecx, 0x4cf6a7f0
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x69f18a1a
cmp eax, 0x5c
jl 0x507ea0
mov ecx, 0x7e9b1442
jmp 0x507ea0
cmp ecx, 0xc9a95047
je 0x50b149
cmp ecx, 0xca021f93
jne 0x507ea0
mov eax, dword [esp + 0x30]
and al, 1
mov byte [esp + 0xf], al
mov eax, dword [0x5d1850]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x19a105a2
mov ecx, 0x3f863a8b
mov esi, 0x19a105a2
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x3f863a8b
jmp 0x50af48
cmp ecx, 0x28f2b16c
je 0x50b160
cmp ecx, 0x29505a1d
jne 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x45bcdd60
cmp eax, 0x6e
jl 0x507ea0
mov ecx, 0xf281fef4
jmp 0x507ea0
cmp ecx, 0xa7b3bec8
je 0x507e90
cmp ecx, 0xa86a7239
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x702616ca
cmp eax, 0xffffffff
je 0x507ea0
mov ecx, 0x35ef92eb
jmp 0x507ea0
cmp ecx, 0x6ee54d3d
je 0x50b198
cmp ecx, 0x702616ca
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_missing_closing_quote
jmp 0x507e90
cmp ecx, 0xe84870c7
je 0x50b1a2
cmp ecx, 0xe8bed576
jne 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xb4ff46b1
mov esi, 0xb4ff46b1
jne 0x50b229
mov esi, 0x2a31ed0d
jmp 0x50b229
cmp ecx, 0x1d4c1f6c
je 0x50b1dc
cmp ecx, 0x1d97b57a
jne 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0xd55c1958
mov ecx, 0xd45ecbbb
mov esi, 0xd55c1958
cmp edx, 0xffffffff
sete dl
je 0x50a10d
mov esi, 0xd45ecbbb
cmp dword [0x5d1854], 0xa
setl dh
cmovl ecx, esi
xor dl, dh
cmovne ecx, eax
mov dword [esp + 0x10], 0
jmp 0x507ea0
cmp ecx, 0x97ef43af
je 0x50b1f5
cmp ecx, 0x98dd88b1
jne 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 0xd
jmp 0x50b151
cmp ecx, 0x5c00fed1
je 0x507e90
cmp ecx, 0x5f416b24
jne 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xe8bed576
cmp eax, 0x1f
jl 0x507ea0
mov ecx, 0x3b843def
jmp 0x507ea0
cmp ecx, 0xd55c1958
je 0x50b239
cmp ecx, 0xd7deb5b0
jne 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_u_must_be_followed_by_4_hex_digits
mov edi, 0xe
mov dword [esp + 0x10], 1
mov ecx, 0xa9ffac17
jmp 0x507ea0
cmp ecx, 0x37ae4541
je 0x50b243
cmp ecx, 0x37dfa728
jne 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001C__FS__must_be_escaped_to_u001C
mov edi, 0xe
mov ecx, 0xcc070f77
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0008__BS__must_be_escaped_to_u0008_or__b
jmp 0x507e90
mov eax, dword [esp + 4]
mov ecx, 0xfbe4ef9b
cmp eax, 0x19
jl 0x507ea0
mov ecx, 0x600b68b1
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x2b647558
cmp eax, 0xc
jl 0x507ea0
mov ecx, 0x44cc0d1a
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0xdc7a50b8
mov ecx, 0x4070c96
mov esi, 0xdc7a50b8
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x4070c96
jmp 0x50af48
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xc1e4df4c
mov esi, 0xc1e4df4c
jne 0x50b1d7
mov esi, 0x4d95c4d6
jmp 0x50b1d7
mov ecx, dword [esp]
add ecx, 0x2c
movsx eax, bl
push eax
call fcn.0041ec00
mov ecx, 0xdb189fc1
jmp 0x507ea0
mov ecx, dword [esp]
call fcn.0050d360
mov ecx, 0x321e8b93
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x69f18a1a
cmp eax, 0x80
jl 0x507ea0
mov ecx, 0x35ef92eb
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0002__STX__must_be_escaped_to_u0002
jmp 0x507e90
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x90bffb0
mov ecx, 0xa1630925
mov esi, 0x90bffb0
test ebp, edx
sete dl
je 0x50af48
mov esi, 0xa1630925
jmp 0x50af48
mov eax, dword [esp + 4]
mov ecx, 0x1ccb7215
cmp eax, 0x1a
jl 0x507ea0
mov ecx, 0x338fd76b
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x8facc40e
cmp eax, 0x16
jl 0x507ea0
mov ecx, 0x6ce847c9
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001F__US__must_be_escaped_to_u001F
jmp 0x507e90
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_surrogate_UD800..UDBFF_must_be_followed_by_UDC00..UDFFF
jmp 0x50ad20
mov ecx, dword [esp]
call fcn.0050d360
mov ecx, 0xc1e4df4c
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0013__DC3__must_be_escaped_to_u0013
mov edi, 0xe
mov ecx, 0x1e12eccc
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001E__RS__must_be_escaped_to_u001E
mov edi, 0xe
mov ecx, 0xb4ff46b1
jmp 0x507ea0
cmp byte [esp + 0x18], 0
mov ecx, 0x261350fd
jne 0x507ea0
mov ecx, 0x85a5b324
jmp 0x507ea0
mov ecx, 0xc298b319
jmp 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 0xc
jmp 0x50b151
mov ecx, 0xcea501ba
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x975bccac
cmp eax, 0x74
jl 0x507ea0
mov ecx, 0x178bf07d
jmp 0x507ea0
mov ecx, 0x8f377760
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x14dbd84d
mov esi, 0x14dbd84d
jne 0x50b229
mov esi, 0x7b79e73
jmp 0x50b229
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000D__CR__must_be_escaped_to_u000D_or__r
jmp 0x507e90
mov eax, dword [esp + 4]
mov ecx, 0x60d2426
cmp eax, 0xf0
jl 0x507ea0
mov ecx, 0x3c436341
jmp 0x507ea0
mov eax, dword [esp]
movsx eax, byte [eax + 0xc]
mov ecx, dword [esp]
add ecx, 0x2c
push eax
call fcn.0041ec00
mov ecx, 0x8f377760
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0011__DC1__must_be_escaped_to_u0011
jmp 0x507e90
mov ecx, 0x8f377760
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x8c9d3b95
cmp eax, 0x5c
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_surrogate_UD800..UDBFF_must_be_followed_by_UDC00..UDFFF
mov edi, 0xe
mov dword [esp + 0x10], 1
mov ecx, 0x231d7b76
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0017__ETB__must_be_escaped_to_u0017
jmp 0x507e90
mov ecx, dword [esp]
call fcn.0050d360
mov ecx, dword [0x5d1850]
mov edx, dword [0x5d1854]
lea ebp, [ecx + 1]
imul ebp, ecx
not ebp
or ebp, 0xfffffffe
cmp ebp, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0x8d79e246
mov esi, 0x8d79e246
jne 0x50a564
mov esi, 0x3826d464
cmp ebp, 0xffffffff
cmovne ecx, esi
cmp edx, 0xa
mov dword [esp + 8], eax
cmovge ecx, esi
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x23f3038e
cmp eax, 0xf4
jl 0x507ea0
mov ecx, 0xdd6385b6
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xcc070f77
mov esi, 0xcc070f77
jne 0x50b229
mov esi, 0xb833a35c
jmp 0x50b229
cmp byte [esp + 0x16], 0
mov ecx, 0xbf39007a
jne 0x50a5e5
mov ecx, 0xca021f93
mov dword [esp + 0x30], 0
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x71e3dfcd
cmp eax, 0xed
jl 0x507ea0
mov ecx, 0xc699c8c4
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x231d7b76
mov ecx, 0x545aa538
mov esi, 0x231d7b76
cmp edx, 0xffffffff
sete dl
je 0x50a63c
mov esi, 0x545aa538
cmp dword [0x5d1854], 0xa
cmovl ecx, esi
setl dh
xor dl, dh
cmovne ecx, eax
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x95e94889
cmp eax, 0x62
jl 0x507ea0
mov ecx, 0x88413d2f
jmp 0x507ea0
mov dword [esp + 0xa4], 0x80
mov dword [esp + 0xa8], 0xbf
mov ecx, dword [esp]
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.0050f680
mov ecx, 0x8b7bba30
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xf8e39364
cmp eax, 8
jl 0x507ea0
mov ecx, 0xb0261bf2
jmp 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xd51c2118
cmp eax, 0x1e
jl 0x507ea0
mov ecx, 0x5f416b24
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x77b09aa6
cmp eax, 0xf
jl 0x507ea0
mov ecx, 0x86626483
jmp 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 0x2f
call fcn.0041ec00
mov ecx, 0x72b019ee
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x5807d0a8
cmp eax, 0xa
jl 0x507ea0
mov ecx, 0x5325dee5
jmp 0x507ea0
test byte [esp + 0x2c], 1
jne 0x50b2a9
mov ecx, 0xbcb7d47
jmp 0x507ea0
mov ecx, 0xcfc03b53
jmp 0x507ea0
mov ecx, 0x4435778d
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xa377314d
cmp eax, 0x23
jl 0x507ea0
mov ecx, 0x4cf6a7f0
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0010__DLE__must_be_escaped_to_u0010
jmp 0x507e90
mov eax, dword [esp + 4]
mov ecx, 0xc8f95aa1
cmp eax, 0x14
jl 0x507ea0
mov ecx, 0xe38efc48
jmp 0x507ea0
mov ecx, 0xcea501ba
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xf9844683
mov esi, 0xf9844683
jne 0x50a7e6
mov esi, 0xcbdbdf13
test ebp, edx
cmovne ecx, esi
cmp eax, 0xa
cmovge ecx, esi
cmp dword [esp + 0x24], 0xdc00
setge byte [esp + 0x16]
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x6ea4cee1
cmp eax, 0xee
jl 0x507ea0
mov ecx, 0x71e3dfcd
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0xd54d92c7
mov ecx, 0x842da6d8
mov esi, 0xd54d92c7
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x842da6d8
jmp 0x50af48
cmp byte [esp + 0x1b], 0
mov ecx, 0x16b61dc8
jne 0x507ea0
mov ecx, 0xd9892fff
jmp 0x507ea0
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xd4ed5fcc
mov esi, 0xd4ed5fcc
jne 0x50ad6c
mov esi, 0xed345271
jmp 0x50ad6c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov ecx, 0x96c41eeb
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0019__EM__must_be_escaped_to_u0019
jmp 0x507e90
mov eax, dword [esp + 8]
mov ecx, 0x98dd88b1
cmp eax, 0x72
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x1d97b57a
mov ecx, 0xd45ecbbb
mov esi, 0x1d97b57a
test ebp, edx
sete dl
je 0x50af48
mov esi, 0xd45ecbbb
jmp 0x50af48
mov eax, dword [esp + 4]
mov ecx, 0x2c58c0c7
cmp eax, 0x1c
jl 0x507ea0
mov ecx, 0xadef2a3e
jmp 0x507ea0
mov ecx, 0x13dd538f
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001E__RS__must_be_escaped_to_u001E
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
mov eax, 0x56e04d0f
mov ecx, 0x2a31ed0d
mov esi, 0x56e04d0f
test edi, edx
sete dl
je 0x50a97a
mov esi, 0x2a31ed0d
cmp dword [0x5d1854], 0xa
setl dh
cmovl ecx, esi
xor dh, dl
jmp 0x50aed0
vmovaps xmm0, xmmword [0x5b7050]
vmovups xmmword [esp + 0x94], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0050f680
mov ecx, 0x8f9b09b9
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xa9ffac17
mov esi, 0xa9ffac17
jne 0x50b1d7
mov esi, 0xd7deb5b0
jmp 0x50b1d7
mov ecx, dword [esp]
call fcn.0050ee40
mov dword [esp + 0x24], eax
mov ecx, 0xdc7a50b8
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x12f44557
mov esi, 0x12f44557
jne 0x50aa49
mov esi, 0x2f6d623c
test ebp, edx
cmovne ecx, esi
cmp eax, 0xa
cmovge ecx, esi
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x1343c72c
cmp eax, 0x20
jl 0x507ea0
mov ecx, 0x69f18a1a
jmp 0x507ea0
vmovsd xmm0, qword [0x5b6e84]
vmovsd qword [esp + 0x4c], xmm0
vmovups xmm0, xmmword [0x5b6e74]
vmovups xmmword [esp + 0x3c], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0050f680
mov ecx, 0xb77d708c
test al, al
jne 0x507ea0
mov ecx, 0x5c00fed1
jmp 0x507ea0
cmp dword [esp + 4], 0
mov ecx, 0xa86a7239
js 0x507ea0
mov ecx, 0xda1744cf
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xa1532536
cmp eax, 0x18
jl 0x507ea0
mov ecx, 0x7dbf3b3f
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x9f621bf3
mov ecx, 0x7d0ca715
mov esi, 0x9f621bf3
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x7d0ca715
jmp 0x50af48
mov ecx, 0x8f377760
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x209cf57b
mov esi, 0x209cf57b
jne 0x50ab63
mov esi, 0x6cb729dc
test edi, edx
cmovne ecx, esi
cmp eax, 0xa
cmovge ecx, esi
mov edi, 0xe
jmp 0x507ea0
mov ecx, 0xe746c23d
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x2a79bdd6
cmp eax, 0x2f
jl 0x507ea0
mov ecx, 0xa13092bc
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001C__FS__must_be_escaped_to_u001C
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0x2b7ae3fb
mov esi, 0x2b7ae3fb
jne 0x50abdd
mov esi, 0xb833a35c
cmp ecx, 0xffffffff
cmovne edx, esi
cmp eax, 0xa
cmovge edx, esi
mov edi, 0xe
mov ecx, edx
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000B__VT__must_be_escaped_to_u000B
jmp 0x507e90
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x7e4d214
mov esi, 0x7e4d214
jne 0x50b229
mov esi, 0x7374b908
jmp 0x50b229
mov ecx, dword [esp]
add ecx, 0x2c
push 0x2f
call fcn.0041ec00
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x6ee54d3d
mov ecx, 0x14ed43d5
mov esi, 0x6ee54d3d
test ebp, edx
sete dl
je 0x50aff8
mov esi, 0x14ed43d5
jmp 0x50aff8
mov ecx, dword [esp]
add ecx, 0x2c
push 0x22
jmp 0x50b151
mov eax, dword [esp + 4]
mov ecx, 0x247d84fd
cmp eax, 0xe
jl 0x507ea0
mov ecx, 0xda735242
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x1dc19133
cmp eax, 3
jl 0x507ea0
mov ecx, 0xb24e19f0
jmp 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 0xa
jmp 0x50b151
cmp dword [esp + 0x20], 0xdc00
setge byte [esp + 0x19]
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x1888f4fb
mov ecx, 0x71183def
mov esi, 0x1888f4fb
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x71183def
jmp 0x50af48
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_surrogate_UDC00..UDFFF_must_follow_UD800..UDBFF
mov edi, 0xe
mov dword [esp + 0x10], 1
mov ecx, 0xe5ecd2c6
jmp 0x507ea0
mov edx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete dl
cmp eax, 0xa
setl dh
xor dh, dl
mov edx, 0xdb189fc1
mov esi, 0xdb189fc1
jne 0x50ad6c
mov esi, 0x8091737c
cmp ecx, 0xffffffff
cmovne edx, esi
cmp eax, 0xa
cmovge edx, esi
mov ecx, edx
jmp 0x507ea0
mov edi, 0xe
mov ecx, 0x142aa335
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0x4272c903
cmp eax, 0x15
jl 0x507ea0
mov ecx, 0x27df1d46
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x15c83ef6
cmp eax, 0x75
je 0x507ea0
mov ecx, 0xe9b41ccd
jmp 0x507ea0
mov eax, dword [esp + 0x38]
mov ecx, 0x4435778d
cmp eax, 5
je 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
mov ecx, 0xf4339ebe
jmp 0x507ea0
mov dword [esp + 0x10], 0
mov ecx, 0x1d97b57a
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0004__EOT__must_be_escaped_to_u0004
jmp 0x507e90
mov ecx, dword [esp]
add ecx, 0x2c
push 8
call fcn.0041ec00
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x2c06f2cd
mov esi, 0x2c06f2cd
jne 0x50b229
mov esi, 0x10e94506
jmp 0x50b229
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
mov ebp, edx
xor ebp, 0xfffffffe
mov eax, 0x4767cbc8
mov ecx, 0xcbdbdf13
mov esi, 0x4767cbc8
test ebp, edx
sete dl
je 0x50aff8
mov esi, 0xcbdbdf13
jmp 0x50aff8
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0016__SYN__must_be_escaped_to_u0016
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x4982bc01
mov ecx, 0x7374b908
mov esi, 0x4982bc01
cmp edx, 0xffffffff
sete dl
je 0x50aec1
mov esi, 0x7374b908
cmp dword [0x5d1854], 0xa
setl dh
cmovl ecx, esi
xor dl, dh
cmovne ecx, eax
mov edi, 0xe
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000F__SI__must_be_escaped_to_u000F
jmp 0x507e90
movzx eax, byte [esp + 0xf]
movzx eax, byte [esp + 0xf]
mov ecx, 0x19a105a2
jmp 0x507ea0
mov eax, dword [esp + 8]
mov ecx, 0x4f3f91c1
cmp eax, 0x5c
jl 0x507ea0
mov ecx, 0x3cacf301
jmp 0x507ea0
mov eax, dword [0x5d1850]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0x614eef51
mov ecx, 0x28f2b16c
mov esi, 0x614eef51
cmp edx, 0xffffffff
sete dl
je 0x50af48
mov esi, 0x28f2b16c
cmp dword [0x5d1854], 0xa
cmovl ecx, esi
setl dh
xor dl, dh
cmovne ecx, eax
jmp 0x507ea0
mov eax, dword [esp + 4]
mov ecx, 0xac3585bf
cmp eax, 0x17
jl 0x507ea0
mov ecx, 0xd21f3200
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x28ec9bf6
mov esi, 0x28ec9bf6
jne 0x50b229
mov esi, 0xa5324d48
jmp 0x50b229
mov ecx, dword [esp]
call fcn.0050ee40
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
sete byte [esp + 0x15]
mov eax, dword [0x5d1850]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
mov eax, 0xff6c2b2c
mov ecx, 0x4070c96
mov esi, 0xff6c2b2c
cmp edx, 0xffffffff
sete dl
je 0x50aff8
mov esi, 0x4070c96
cmp dword [0x5d1854], 0xa
cmovl ecx, esi
setl dh
xor dh, dl
cmovne ecx, eax
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U001D__GS__must_be_escaped_to_u001D
jmp 0x507e90
mov eax, dword [esp + 4]
mov ecx, 0x854deaa4
cmp eax, 0x10
jl 0x507ea0
mov ecx, 0x675ddae7
jmp 0x507ea0
mov ecx, 0x36bda7c8
jmp 0x507ea0
mov ecx, 0x12f44557
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0006__ACK__must_be_escaped_to_u0006
jmp 0x507e90
mov eax, ebx
shr eax, 0x12
mov ecx, dword [esp]
add ecx, 0x2c
mov edx, eax
not dl
and dl, 0xf1
mov dh, al
and dh, 0xe
or dh, dl
xor dh, 1
and al, 0xf0
or al, dh
movsx eax, al
push eax
call fcn.0041ec00
mov edx, ebx
shr edx, 0xc
mov ecx, dword [esp]
add ecx, 0x2c
mov eax, edx
xor al, 0xc0
and al, dl
mov edx, eax
not dl
and dl, 0x73
mov ah, al
and ah, 0x8c
or ah, dl
xor ah, 0xf3
and al, 0x80
or al, ah
movsx eax, al
push eax
call fcn.0041ec00
mov edx, ebx
shr edx, 6
mov ecx, dword [esp]
add ecx, 0x2c
mov eax, edx
xor al, 0xc0
and al, dl
mov edx, eax
not dl
and dl, 0x68
mov ah, al
and ah, 0x97
or ah, dl
xor ah, 0xe8
and al, 0x80
or al, ah
movsx eax, al
push eax
call fcn.0041ec00
mov ecx, dword [esp]
add ecx, 0x2c
mov eax, ebx
xor al, 0xc0
and al, bl
mov edx, eax
not dl
and dl, 0x5f
mov ah, al
and ah, 0xa0
or ah, dl
xor ah, 0xdf
and al, 0x80
or al, ah
jmp 0x50b289
mov eax, dword [esp + 8]
mov ecx, 0x29505a1d
cmp eax, 0x72
jl 0x507ea0
mov ecx, 0x8a30a01f
jmp 0x507ea0
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U000A__LF__must_be_escaped_to_u000A_or__n
jmp 0x507e90
mov ecx, 0xd4296cb8
jmp 0x507ea0
mov ecx, 0x36bda7c8
jmp 0x507ea0
mov ecx, dword [esp]
add ecx, 0x2c
push 9
call fcn.0041ec00
mov ecx, 0x4435778d
jmp 0x507ea0
vmovsd xmm0, qword [0x5b6e6c]
vmovsd qword [esp + 0x64], xmm0
vmovups xmm0, xmmword [0x5b6e5c]
vmovups xmmword [esp + 0x54], xmm0
mov ecx, dword [esp]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0050f680
mov ecx, 0x614eef51
jmp 0x507ea0
mov ecx, 0x4435778d
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x99536655
mov esi, 0x99536655
jne 0x50b1d7
mov esi, 0xa1630925
cmp edx, 0xffffffff
jmp 0x50b22b
mov eax, dword [esp]
mov dword [eax + 0x44], str.invalid_string:_control_character_U0012__DC2__must_be_escaped_to_u0012
mov edi, 0xe
mov ecx, 0x6308a738
jmp 0x507ea0
mov ecx, dword [0x5d1850]
mov eax, dword [0x5d1854]
lea edx, [ecx + 1]
imul edx, ecx
mov ebp, edx
xor ebp, 0xfffffffe
test ebp, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0x72b019ee
mov esi, 0x72b019ee
jne 0x50b229
mov esi, 0x14ed43d5
test ebp, edx
cmovne ecx, esi
cmp eax, 0xa
cmovge ecx, esi
jmp 0x507ea0
mov ecx, 0x36bda7c8
jmp 0x507ea0
mov eax, ebx
shr eax, 0xc
mov ecx, dword [esp]
add ecx, 0x2c
or al, 0xe0
movsx eax, al
push eax
call fcn.0041ec00
mov eax, ebx
shr eax, 6
mov ecx, dword [esp]
add ecx, 0x2c
mov edx, eax
not dl
or dl, 0xc0
and dl, 0xf3
and al, 0xc
or al, dl
xor al, 0x73
movsx eax, al
push eax
call fcn.0041ec00
mov ecx, dword [esp]
add ecx, 0x2c
mov eax, ebx
or al, 0x80
and al, 0xbf
movsx eax, al
push eax
call fcn.0041ec00
mov ecx, 0x655a6247
jmp 0x507ea0
cmp ecx, 0xf4339ebe
je 0x50b2c1
jmp 0x507ea0
mov ecx, 0x267ef74a
jmp 0x507ea0
mov ecx, 0x8dd0dd1c
mov dword [esp + 0x20], ebx
jmp 0x507ea0
mov ecx, dword [esp + 0xac]
xor ecx, esp
call fcn.00594995
mov eax, edi
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret