Function at 0x4171db
Capabilities:
Encode data using xor

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, ecx
sub esp, 0xec
mov eax, dword [edi]
cmp eax, 0
jle 0x417410
mov edx, 0x800
sub edx, dword [ecx + 0x11cc]
cmp eax, edx
ja 0x417394
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x41741d
add eax, dword [esi + 0x11cc]
lea ebx, [esi + 0x9cc]
movdqa xmm7, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
mov dword [ebp - 0xa4], ebx
movaps xmmword [ebp - 0xb8], xmm7
mov edi, eax
mov dword [esi + 0x11cc], eax
lea eax, [esi + 0x1c0]
movdqa xmm3, xmmword [0x766eb0]
mov dword [ebp - 0x98], eax
movdqa xmm4, xmmword [0x766ec0]
movdqa xmm7, xmmword [0x766ed0]
movaps xmmword [ebp - 0xc8], xmm3
movaps xmmword [ebp - 0xd8], xmm4
movaps xmmword [ebp - 0xe8], xmm7
mov dword [esp + 8], edi
mov dword [esp + 4], 0xa
mov dword [esp], ebx
call sub.msvcrt.dll_printf
test eax, eax
je 0x417432
lea ecx, [eax + 1]
mov byte [eax], 0
mov eax, dword [esi + 0x1c0]
mov dword [ebp - 0x8c], ecx
sub ecx, ebx
mov eax, dword [eax + 8]
lea edx, [ecx - 1]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x94], edx
cmp eax, 0x6fc300
jne 0x4173f1
test byte [esi + 0x11d0], 0x10
mov eax, dword [esi + 0x100]
mov dword [esi + 0x11e0], 0
mov dword [esi + 0x11e4], 0
mov ecx, eax
jne 0x4173d0
test eax, eax
jle 0x41733c
mov eax, ecx
mov ecx, 0x3e8
imul ecx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
call fcn.006c16e0
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00537c50
add eax, dword [ebp - 0xa0]
adc edx, dword [ebp - 0x9c]
mov dword [esi + 0x11f0], eax
mov dword [esi + 0x11f4], edx
cmp dword [ebp - 0x94], 0x1f
jbe 0x41734e
cmp byte [ebx], 0x7b
je 0x417520
cmp byte [esi + 4], 0
jne 0x417383
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [esi + 0x1c], edx
jg 0x417383
jge 0x4174b0
mov eax, dword [esi + 0x164]
mov dword [esp + 4], str.__s__JSON_decode_failed
mov dword [esp], 3
mov dword [esp + 8], eax
call fcn.00404ee0
sub edi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
jmp 0x417274
mov eax, 0xfffff024
cmp byte [esi + 4], 0
jne 0x4173b0
mov edx, dword [esi + 0x10]
mov ebx, edx
sar ebx, 0x1f
cmp dword [esi + 0x1c], ebx
jle 0x4174c0
test dword [esi + 0x170], 0xfffffffb
jne 0x417463
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
test eax, eax
mov dword [ebp - 0xa0], 0xea60
mov dword [ebp - 0x9c], 0
jle 0x417303
jmp 0x4172ee
mov dword [esp + 4], edx
mov dword [esp], ebx
mov ecx, dword [ebp - 0x98]
call eax
sub esp, 8
jmp 0x417383
jne 0x417399
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x417212
mov ecx, esi
call fcn.00414540
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
test edi, edi
je 0x417500
mov eax, dword [ebp - 0xa4]
cmp eax, ebx
je 0x4173c0
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_putchar
mov dword [esi + 0x11cc], edi
jmp 0x4173c0
mov eax, dword [esi + 0x1200]
test eax, eax
je 0x4173c0
mov dword [esi + 0x170], 4
mov dword [esp], eax
call fcn.004d6b20
test eax, eax
jne 0x4173c0
mov dword [esp + 4], 0x414c00
mov eax, dword [esi + 0x1200]
mov dword [esp], eax
call fcn.004d68b0
jmp 0x4173c0
cmp dword [esi + 0x18], ecx
jae 0x417383
jmp 0x417365
jl 0x4174cb
cmp dword [esi + 0x18], edx
jae 0x4173b0
mov dword [esp], eax
call fcn.004c9ec0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x164]
mov dword [esp + 4], str.__s__read_error:___s_
mov dword [esp], 3
mov dword [esp + 8], eax
call fcn.00404ee0
jmp 0x4173b0
mov dword [esi + 0x11cc], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
mov dword [esp], 0x14
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0x400
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.006ff530
movzx ecx, byte [ebx]
mov dword [eax], 0
mov dword [eax + 4], 0x10000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x74], eax
lea eax, [ecx - 9]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0x100
cmp al, 0x17
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 2
jbe 0x4177c0
mov eax, ebx
test cl, cl
mov dword [ebp - 0x80], eax
je 0x417b2e
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x94], eax
mov dword [esp + 4], eax
lea eax, [ebp - 0x80]
mov dword [esp], eax
call fcn.006404c0
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x6c]
sub esp, 8
test eax, eax
mov dword [ebp - 0xa0], ebx
jne 0x417b50
mov edx, dword [ebp - 0x80]
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
ja 0x4176a0
mov ebx, 0x800013
bt ebx, ecx
jae 0x4176a0
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x417a31
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
ja 0x4176a0
bt ebx, edx
jae 0x4176a0
add eax, 1
cmp ecx, eax
je 0x417a31
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
jbe 0x417685
mov dword [ebp - 0x80], eax
cmp byte [eax], 0
jne 0x417b61
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
lea edx, [eax - 0x10]
cmp edx, dword [ebp - 0x94]
mov dword [ebp - 0x2c], edx
je 0x4176f1
mov edx, dword [eax - 0x10]
mov dword [ebp - 0x50], edx
mov edx, dword [eax - 0xc]
mov dword [ebp - 0x4c], edx
mov edx, dword [eax - 8]
mov dword [ebp - 0x48], edx
mov edx, dword [eax - 4]
mov dword [ebp - 0x44], edx
xor edx, edx
mov word [eax - 2], dx
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call fcn.00548438
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [esp], eax
call fcn.00548438
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
call fcn.006ff4f0
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4178e1
cmp byte [esi + 4], 0
je 0x417ab0
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x4177a3
mov eax, dword [edx]
test eax, eax
je 0x417784
cmp dword [edx + 8], eax
je 0x417cc8
mov dword [ebp - 0x94], esi
mov esi, edx
jmp 0x41776b
cmp dword [esi + 8], ebx
mov eax, ebx
je 0x417b10
mov ebx, dword [eax + 8]
mov dword [esp], eax
call fcn.00548438
test ebx, ebx
mov dword [esi], ebx
jne 0x417760
mov edx, esi
mov esi, dword [ebp - 0x94]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x94], edx
mov dword [esp], eax
call fcn.006ff4f0
mov edx, dword [ebp - 0x94]
mov dword [esp], edx
call fcn.006ff4f0
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call fcn.00548438
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call fcn.006ff4f0
jmp 0x417383
mov edx, 0x800013
bt edx, eax
jae 0x417b24
lea ecx, [ebx + 0x10]
lea eax, [ebx + 1]
and ecx, 0xfffffff0
cmp eax, ecx
mov dword [ebp - 0x94], ecx
je 0x417820
movzx ecx, byte [ebx + 1]
lea edx, [ecx - 9]
cmp dl, 0x17
ja 0x417611
mov ecx, 0x800013
bt ecx, edx
jae 0x417b26
add eax, 1
cmp dword [ebp - 0x94], eax
je 0x417820
movzx ecx, byte [eax]
lea edx, [ecx - 9]
cmp dl, 0x17
ja 0x417611
jmp 0x4177f1
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0xc8]
movdqa xmm2, xmmword [ebp - 0xb8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0xd8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0xe8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
jne 0x4178c9
movdqa xmm1, xmmword [ebp - 0xb8]
movdqa xmm2, xmmword [ebp - 0xc8]
movdqa xmm3, xmmword [ebp - 0xd8]
movdqa xmm4, xmmword [ebp - 0xe8]
lea esi, [esi]
lea edi, [edi]
add eax, 0x10
movdqa xmm5, xmmword [eax]
movdqa xmm0, xmm5
movdqa xmm6, xmm5
pcmpeqb xmm0, xmm1
pcmpeqb xmm6, xmm2
por xmm0, xmm6
movdqa xmm6, xmm3
pcmpeqb xmm6, xmm5
pcmpeqb xmm5, xmm4
por xmm0, xmm6
por xmm0, xmm5
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x417890
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
movzx ecx, byte [eax]
jmp 0x417611
cmp word [ebp - 0x42], 3
jne 0x41773c
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x48]
shl eax, 5
mov dword [ebp - 0x94], ebx
add eax, ebx
cmp eax, ebx
jne 0x417925
jmp 0x417b86
cmp byte [ebx + 0xd], 0xb
mov edx, ebx
je 0x417933
add ebx, 0x20
cmp eax, ebx
mov edx, ebx
je 0x417b88
test byte [ebx + 0xf], 0x10
jne 0x417910
cmp dword [ebx], 2
jne 0x417918
mov edx, dword [ebx + 8]
cmp edx, 0x744339
je 0x417942
cmp word [edx], 0x6469
jne 0x417918
test byte [ebx + 0x1e], 0x80
je 0x417db7
lea eax, [ebp - 0x50]
mov dword [esp], 0x74450d
mov ecx, eax
mov dword [ebp - 0x94], eax
call fcn.0063ac00
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0xa0], eax
sub esp, 4
mov eax, dword [ebp - 0x48]
shl ecx, 5
add ecx, eax
cmp eax, ecx
jne 0x417993
jmp 0x417d10
cmp byte [eax + 0xd], 7
mov edx, eax
je 0x4179a1
add eax, 0x20
cmp ecx, eax
je 0x417d10
test byte [eax + 0xf], 0x10
jne 0x417980
cmp dword [eax], 6
jne 0x417988
mov edx, dword [eax + 8]
cmp edx, 0x7444ba
je 0x4179b9
cmp dword [edx], 0x75736572
jne 0x417988
cmp word [edx + 4], 0x746c
jne 0x417988
add eax, 0x10
mov edx, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov ecx, esi
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00412d50
sub esp, 0x10
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x4177a3
mov eax, dword [edx]
test eax, eax
je 0x417784
mov ebx, dword [edx + 8]
cmp eax, ebx
je 0x417b18
mov dword [ebp - 0x94], esi
mov esi, edx
jmp 0x417a1b
cmp dword [esi + 8], ebx
mov eax, ebx
je 0x417b10
mov ebx, dword [eax + 8]
mov dword [esp], eax
call fcn.00548438
test ebx, ebx
mov dword [esi], ebx
jne 0x417a10
jmp 0x41777c
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmmword [0x766eb0]
pcmpeqb xmm2, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
jmp 0x417a6f
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
pcmpeqb xmm2, xmmword [0x766eb0]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x766ed0]
pcmpeqb xmm2, xmmword [0x766ec0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x417a50
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x4176a0
mov ebx, dword [esi + 0x10]
mov eax, ebx
cdq
cmp dword [esi + 0x1c], edx
jg 0x41773c
jl 0x417aca
cmp dword [esi + 0x18], ebx
jae 0x41773c
cmp ecx, 0x11
mov eax, 0x7444c8
ja 0x417adb
mov eax, dword [ecx*4 + 0x7447c0]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x164]
mov dword [esp + 4], 0x7444ef
mov dword [esp], 3
mov dword [esp + 8], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x94], eax
call fcn.00404ee0
jmp 0x41773c
mov edx, esi
mov esi, dword [ebp - 0x94]
mov dword [ebx + 4], 0
jmp 0x417784
mov eax, ebx
mov dword [ebp - 0x80], eax
jmp 0x41761c
sub eax, ebx
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], eax
jmp 0x4176f1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x1c], eax
jmp 0x4176f1
sub eax, dword [ebp - 0x78]
mov ebx, dword [ebp - 0xa0]
mov dword [ebp - 0x5c], 2
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x1c], eax
jmp 0x4176f1
mov edx, ebx
cmp edx, dword [ebp - 0x94]
mov dword [0x7413c4], 0
mov dword [0x7413c8], 0
mov dword [0x7413cc], 0
mov dword [0x7413d0], 0
je 0x417ccf
mov eax, dword [ebp - 0x94]
jmp 0x417bd7
cmp byte [eax + 0xd], 8
mov ecx, eax
je 0x417be5
add eax, 0x20
cmp edx, eax
je 0x417d42
test byte [eax + 0xf], 0x10
jne 0x417bc4
cmp dword [eax], 5
jne 0x417bcc
mov ecx, dword [eax + 8]
cmp ecx, 0x74450d
je 0x417bfb
cmp dword [ecx], 0x6f727265
jne 0x417bcc
cmp byte [ecx + 4], 0x72
jne 0x417bcc
lea ebx, [eax + 0x10]
mov eax, dword [ebp - 0x94]
jmp 0x417c23
cmp byte [eax + 0xd], 7
mov ecx, eax
je 0x417c31
add eax, 0x20
cmp edx, eax
je 0x417d74
test byte [eax + 0xf], 0x10
jne 0x417c10
cmp dword [eax], 6
jne 0x417c18
mov ecx, dword [eax + 8]
cmp ecx, str.params
je 0x417c49
cmp dword [ecx], 0x61726170
jne 0x417c18
cmp word [ecx + 4], 0x736d
jne 0x417c18
add eax, 0x10
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x94]
jmp 0x417c6f
cmp byte [ecx + 0xd], 7
mov eax, ecx
je 0x417c7d
add ecx, 0x20
cmp edx, ecx
je 0x417cde
test byte [ecx + 0xf], 0x10
jne 0x417c60
cmp dword [ecx], 6
jne 0x417c68
mov eax, dword [ecx + 8]
cmp eax, 0x74451a
je 0x417c94
cmp dword [eax], 0x6874656d
jne 0x417c68
cmp word [eax + 4], 0x646f
jne 0x417c68
test byte [ecx + 0x1f], 0x10
lea eax, [ecx + 0x10]
mov edx, eax
je 0x417d0b
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], ebx
mov ecx, esi
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x94], eax
call fcn.00412830
sub esp, 0xc
jmp 0x4179e1
mov ebx, eax
jmp 0x417b18
mov dword [ebp - 0xa0], 0x7413c4
mov ebx, 0x7413c4
mov dword [0x7413c4], 0
mov dword [0x7413c8], 0
mov eax, 0x7413c4
mov dword [0x7413cc], 0
mov dword [0x7413d0], 0
mov edx, dword [eax + 8]
jmp 0x417c9f
mov dword [0x7413c4], 0
mov dword [0x7413c8], 0
mov eax, 0x7413c4
mov dword [0x7413cc], 0
mov dword [0x7413d0], 0
jmp 0x4179bc
mov dword [0x7413c4], 0
mov dword [0x7413c8], 0
mov ebx, 0x7413c4
mov dword [0x7413cc], 0
mov dword [0x7413d0], 0
jmp 0x417bfe
cmp edx, dword [ebp - 0x94]
mov dword [0x7413c4], 0
mov dword [0x7413c8], 0
mov dword [0x7413cc], 0
mov dword [0x7413d0], 0
mov dword [ebp - 0xa0], 0x7413c4
jne 0x417c52
jmp 0x417cde
mov edx, eax
jmp 0x417bbc