Function at 0x1400325f0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov rax, qword [0x1400db748]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov r10, qword [rbp + 0x230]
xor eax, eax
mov r12, qword [rbp + 0x228]
mov rbx, rcx
mov qword [rbp + 0x68], rcx
lea rcx, str.0123456789abcdef_
mov qword [rbp + 0x18], rcx
lea rcx, [rbp + 0xf0]
mov qword [rbp - 0x28], rcx
mov rcx, r12
mov byte [rbp - 0x38], r8b
lea r8, [rbp - 0x28]
mov qword [rbp + 0x58], rdx
mov rdx, r10
mov qword [rbp + 0x40], r9
mov qword [rbp + 8], r12
mov qword [rsp + 0x70], r10
mov dword [rbp - 0x4c], eax
mov qword [rbp], rax
mov byte [rbp - 0x60], al
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov qword [rbp + 0x30], rax
mov dword [rbp - 0x50], 1
call fcn.140030e90
mov r8, qword [rbx]
lea rax, [rbp + 0x70]
mov rbx, qword [rbp + 0x220]
lea rdi, [rbp + 0x70]
xor r11d, r11d
mov qword [rsp + 0x48], rax
test r8, r8
mov esi, r11d
mov edx, r11d
mov dword [rsp + 0x54], r11d
sete byte [rsp + 0x78]
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x6c], edx
mov r14d, r11d
mov qword [rsp + 0x60], r8
mov r13d, r11d
mov byte [rsp + 0x79], dl
mov qword [rbp - 0x80], r8
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], r11
test r8, r8
jne 0x140032741
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [r12 + rbx], dl
jne 0x1400326f0
inc rbx
mov qword [rbp + 0x220], rbx
cmp rbx, 1
jbe 0x140032718
add rbx, 0x3f
and rbx, 0xffffffffffffffc0
mov qword [rbp + 0x220], rbx
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x60], rax
mov r8, rax
mov qword [rbp - 0x80], rax
test rax, rax
je 0x140034fff
mov edx, dword [rsp + 0x6c]
xor r11d, r11d
mov qword [rbp - 0x78], rbx
mov byte [rsp + 0x58], r13b
mov dword [rbp + 0x50], r11d
mov dword [rbp - 0x2c], r11d
mov dword [rbp + 0x10], r11d
mov dword [rbp - 0x1c], r11d
mov dword [rbp - 0x20], r11d
mov dword [rsp + 0x5c], r11d
mov qword [rbp - 0x68], r11
movsx r15d, byte [r12]
mov rax, r12
test r15d, r15d
je 0x140032788
cmp r15d, 0x25
je 0x140032784
movsx r15d, byte [r12 + 1]
inc r12
test r15d, r15d
jne 0x140032770
mov qword [rbp + 8], r12
mov ecx, r12d
sub ecx, eax
je 0x1400328b6
lea r12d, [rcx + rdx]
mov dword [rbp - 0x30], r12d
cmp r12d, 0x7fffffff
ja 0x140034eef
mov qword [rdi], rax
add r14d, ecx
inc esi
movsxd rax, ecx
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400328ad
test r14d, r14d
jne 0x1400327de
mov esi, r11d
mov dword [rsp + 0x50], esi
jmp 0x1400328a9
cmp byte [rsp + 0x78], 0
je 0x14003283e
movsxd rax, r14d
lea rcx, [r13 + 1]
add rcx, rax
cmp rcx, rbx
jbe 0x14003283e
lea rax, [rcx - 1]
xor edx, edx
add rax, rbx
mov rcx, r8
div rbx
mov rbx, rax
imul rbx, qword [rbp + 0x220]
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor r11d, r11d
test rax, rax
jne 0x14003282a
mov byte [rsp + 0x79], 1
lea eax, [r11 + 1]
jmp 0x140032892
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x14003288f
mov r12, qword [rsp + 0x60]
nop dword [rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r13, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r13
sub rsi, 1
jne 0x140032850
mov r12d, dword [rbp - 0x30]
xor r11d, r11d
mov eax, r11d
mov esi, r11d
mov r14d, r11d
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x54], r11d
test eax, eax
jne 0x140034fd1
lea rdi, [rbp + 0x70]
mov dword [rsp + 0x6c], r12d
mov r12, qword [rbp + 8]
test r15d, r15d
je 0x140034f07
mov r10d, dword [rbp - 0x50]
mov r9d, r11d
mov r8, qword [rbp - 0x28]
inc r12
mov dword [rsp + 0x68], r11d
mov r15d, 0xffffffff
mov dword [rbp - 0x34], r11d
mov dword [rbp - 0x44], r11d
mov r11, qword [rsp + 0x70]
mov byte [rsp + 0x40], 0
mov byte [rbp - 0x47], 0
mov dword [rbp - 0x5c], r15d
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movsx ebx, byte [r12]
inc r12
mov qword [rbp + 8], r12
nop dword [rax]
lea eax, [rbx - 0x20]
cmp eax, 0x5a
ja case.0x14003293e.33
cdqe
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x35114]
mov ecx, dword [rcx + rax*4 + 0x3508c]
lea rax, [0x140000000]
add rcx, rax
jmp rcx
movsx ebx, byte [r12]
inc r12
mov qword [rbp + 8], r12
cmp ebx, 0x2a
je 0x1400329be
lea eax, [rbx - 0x30]
mov dword [rbp - 0x5c], edx
mov r15d, edx
cmp eax, 9
ja 0x140032910
nop
lea eax, [r15 - 6]
lea eax, [r15 + rax*4]
lea r15d, [rbx + rax*2]
movsx ebx, byte [r12]
inc r12
lea eax, [rbx - 0x30]
cmp eax, 9
jbe 0x140032960
mov dword [rbp - 0x5c], r15d
jmp 0x140032908
mov ecx, edx
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 6]
lea eax, [rcx + rax*4]
lea ecx, [rbx + rax*2]
movsx ebx, byte [r12]
inc r12
lea eax, [rbx - 0x30]
cmp eax, 9
jbe 0x140032990
mov qword [rbp + 8], r12
cmp ebx, 0x24
je 0x140032a4c
mov dword [rbp - 0x44], ecx
jmp 0x140032910
movsx r8d, byte [r12]
mov rcx, r12
lea eax, [r8 - 0x30]
cmp eax, 9
ja 0x1400329ea
nop
lea eax, [rdx - 6]
inc rcx
lea eax, [rdx + rax*4]
lea edx, [r8 + rax*2]
movsx r8d, byte [rcx]
lea eax, [r8 - 0x30]
cmp eax, 9
jbe 0x1400329d0
cmp byte [rcx], 0x24
mov r8, qword [rbp - 0x28]
jne 0x140032a1d
test r8, r8
je 0x140032a08
movsxd rax, edx
lea r12, [rcx + 1]
mov r15d, dword [r8 + rax*8]
jmp 0x1400328ee
mov r15d, dword [r11]
lea r12, [rcx + 1]
add r11, 8
mov qword [rsp + 0x70], r11
jmp 0x1400328ee
lea ecx, [r10 + 1]
mov dword [rbp - 0x50], ecx
test r8, r8
je 0x140032a38
movsxd rax, r10d
mov r10d, ecx
mov r15d, dword [r8 + rax*8]
jmp 0x1400328ee
mov r15d, dword [r11]
add r11, 8
mov r10d, ecx
mov qword [rsp + 0x70], r11
jmp 0x1400328ee
mov r10d, ecx
mov dword [rbp - 0x50], ecx
jmp 0x140032900
cmp byte [rsp + 0x40], 0
jne 0x140032900
mov byte [rsp + 0x40], 0x20
jmp 0x140032900
or r9d, 1
mov dword [rsp + 0x68], r9d
jmp 0x140032900
movsx r8d, byte [r12]
mov rcx, r12
lea eax, [r8 - 0x30]
cmp eax, 9
ja 0x140032aaa
nop dword [rax + rax]
lea eax, [rdx - 6]
inc rcx
lea eax, [rdx + rax*4]
lea edx, [r8 + rax*2]
movsx r8d, byte [rcx]
lea eax, [r8 - 0x30]
cmp eax, 9
jbe 0x140032a90
cmp byte [rcx], 0x24
mov r8, qword [rbp - 0x28]
jne 0x140032add
test r8, r8
je 0x140032ac8
movsxd rax, edx
lea r12, [rcx + 1]
mov edx, dword [r8 + rax*8]
mov dword [rbp - 0x44], edx
jmp 0x140032b04
mov edx, dword [r11]
lea r12, [rcx + 1]
add r11, 8
mov dword [rbp - 0x44], edx
mov qword [rsp + 0x70], r11
jmp 0x140032b04
lea ecx, [r10 + 1]
mov dword [rbp - 0x50], ecx
test r8, r8
je 0x140032af2
movsxd rax, r10d
mov edx, dword [r8 + rax*8]
jmp 0x140032afe
mov edx, dword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov dword [rbp - 0x44], edx
mov r10d, ecx
test edx, edx
jns 0x1400328f2
neg edx
mov dword [rbp - 0x44], edx
or r9d, 4
mov dword [rsp + 0x68], r9d
jmp 0x1400328f2
mov byte [rsp + 0x40], 0x2b
jmp 0x140032900
movzx eax, byte [rbp - 0x38]
bts r9d, 9
mov byte [rbp - 0x60], al
mov rax, qword [rbp + 0x58]
mov dword [rsp + 0x68], r9d
mov qword [rbp - 0x18], rax
test rax, rax
je 0x140032900
cmp byte [rax], 0
jne 0x140032900
lea rax, [0x1400ca4ac]
mov qword [rbp - 0x18], rax
jmp 0x140032900
bts r9d, 7
mov dword [rsp + 0x68], r9d
jmp 0x140032900
test r9b, 0x40
je 0x140032b8c
and r9d, 0xffffffbf
bts r9d, 0xd
mov dword [rsp + 0x68], r9d
jmp 0x140032900
or r9d, 0x40
mov dword [rsp + 0x68], r9d
jmp 0x140032900
bts r9d, 0xc
mov dword [rsp + 0x68], r9d
jmp 0x140032900
movzx eax, byte [r12]
cmp al, 0x36
jne 0x140032bcc
cmp byte [r12 + 1], 0x34
jne 0x140032bcc
add r12, 2
or r9d, 0x20
mov dword [rsp + 0x68], r9d
jmp 0x140032900
cmp al, 0x33
jne case.0x14003293e.90
cmp byte [r12 + 1], 0x32
jne case.0x14003293e.90
add r12, 2
jmp 0x140032900
test r9b, 0x10
je 0x140032bf9
and r9d, 0xffffffef
or r9d, 0x20
mov dword [rsp + 0x68], r9d
jmp 0x140032900
or r9d, 0x10
mov dword [rsp + 0x68], r9d
jmp 0x140032900
bts r9d, 0xb
mov dword [rsp + 0x68], r9d
jmp 0x140032900
bts r9d, 0xa
mov dword [rsp + 0x68], r9d
jmp 0x140032900
or r9d, 0x10
mov dword [rsp + 0x68], r9d
lea ebx, [r10 + 1]
test r9b, 0x10
je 0x140032c94
mov rax, qword [0x140089b98]
mov qword [rbp - 0x40], rax
test r8, r8
je 0x140032c52
movsxd rax, r10d
movzx edx, word [r8 + rax*8]
jmp 0x140032c5f
movzx edx, word [r11]
add r11, 8
mov qword [rsp + 0x70], r11
lea r15, [rbp + 0x140]
lea r8, [rbp - 0x40]
mov qword [rbp - 0x58], r15
lea rcx, [rbp + 0x140]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcrtomb]
mov qword [rbp - 0x40], rax
mov r8, rax
cmp rax, 0xffffffffffffffff
je 0x140034f5a
mov dword [rbp - 0x50], ebx
jmp 0x1400339f4
test r8, r8
je 0x140032ca2
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
jmp 0x140032cae
mov ecx, dword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
lea rax, [rbp + 0x140]
mov byte [rbp + 0x140], cl
mov r8d, 1
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x40], r8
mov dword [rbp - 0x50], ebx
jmp 0x1400339f4
or r9d, 0x10
test r9d, 0x1c20
je 0x140032d1c
test r8, r8
je 0x140032cec
movsxd rax, r10d
mov rax, qword [r8 + rax*8]
jmp 0x140032cf8
mov rax, qword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov qword [rbp - 0x68], rax
test rax, rax
jns 0x140032da0
neg rax
mov byte [rsp + 0x40], 0x2d
mov qword [rbp - 0x68], rax
mov r8d, 0xa
jmp 0x1400338c8
test r9b, 0x10
je 0x140032d30
test r8, r8
je 0x140032d81
movsxd rax, r10d
mov eax, dword [r8 + rax*8]
jmp 0x140032d8d
test r9b, 0x40
je 0x140032d58
test r8, r8
je 0x140032d47
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
movsx eax, cx
jmp 0x140032d8d
mov ecx, dword [r11]
add r11, 8
movsx eax, cx
mov qword [rsp + 0x70], r11
jmp 0x140032d8d
bt r9d, 0xd
jae 0x140032d22
test r8, r8
je 0x140032d70
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
movsx eax, cl
jmp 0x140032d8d
mov ecx, dword [r11]
add r11, 8
movsx eax, cl
mov qword [rsp + 0x70], r11
jmp 0x140032d8d
mov eax, dword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x5c], eax
test eax, eax
jns 0x140032da0
neg eax
mov byte [rsp + 0x40], 0x2d
mov dword [rsp + 0x5c], eax
mov r8d, 0xa
jmp 0x1400338c8
mov byte [rsp + 0x58], bl
test r15d, r15d
jns 0x140032dc0
mov r12d, 7
mov dword [rbp - 0x5c], r12d
jmp 0x140032dd6
inc r15d
test r15d, r15d
mov eax, 6
cmovs r15d, eax
mov dword [rbp - 0x5c], r15d
mov r12d, r15d
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x140032dec
mov rcx, rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov r9d, dword [rsp + 0x68]
movsxd rax, dword [rbp - 0x50]
mov rcx, qword [rbp - 0x28]
lea r15d, [rax + 1]
test r9b, 0x20
je 0x140032e72
test rcx, rcx
je 0x140032e29
movsd xmm0, qword [rcx + rax*8]
jmp 0x140032e3d
mov byte [rsp + 0x58], 0
jmp 0x140032dc3
lea eax, [rbx - 2]
mov byte [rsp + 0x58], al
test r15d, r15d
jne 0x140032dc6
mov r12d, 1
mov dword [rbp - 0x5c], r12d
jmp 0x140032dd6
mov r10, qword [rsp + 0x70]
add r10, 8
mov qword [rsp + 0x70], r10
movsd xmm0, qword [r10 - 8]
movzx eax, byte [rsp + 0x58]
lea r9, [rbp - 0x4c]
neg al
movsd qword [rbp + 0x28], xmm0
lea rax, [rbp]
mov r8d, r12d
mov qword [rsp + 0x28], rax
lea rcx, [rbp + 0x28]
sbb edx, edx
lea rax, [rbp + 0x20]
add edx, 3
mov qword [rsp + 0x20], rax
call fcn.1400352a0
jmp 0x140032ec1
test rcx, rcx
je 0x140032e7e
movsd xmm0, qword [rcx + rax*8]
jmp 0x140032e92
mov r10, qword [rsp + 0x70]
add r10, 8
mov qword [rsp + 0x70], r10
movsd xmm0, qword [r10 - 8]
movzx eax, byte [rsp + 0x58]
lea r9, [rbp - 0x4c]
neg al
movsd qword [rbp + 0x28], xmm0
lea rax, [rbp]
mov r8d, r12d
mov qword [rsp + 0x28], rax
sbb edx, edx
lea rax, [rbp + 0x20]
add edx, 3
mov qword [rsp + 0x20], rax
call fcn.140035170
mov qword [rbp + 0x30], rax
mov qword [rbp - 0x58], rax
test rax, rax
je 0x140034f5a
or dword [rsp + 0x68], 0x100
cmp dword [rbp - 0x4c], 0x270f
je 0x1400331c3
lea rdx, str._inf
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x1400331bf
mov rcx, qword [rbp - 0x58]
lea rdx, [0x140088e14]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x1400331bf
mov rcx, qword [rbp - 0x58]
lea rdx, [0x140088e0c]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x1400331bf
cmp dword [rbp + 0x20], 0
mov edx, 0x2d
movzx eax, byte [rsp + 0x40]
mov r9d, dword [rbp]
cmovne eax, edx
sub r9d, dword [rbp - 0x58]
mov byte [rsp + 0x40], al
lea eax, [rbx - 0x47]
mov dword [rbp + 0x10], r9d
test eax, 0xffffffdf
jne 0x140032fb3
mov ecx, dword [rbp - 0x4c]
cmp ecx, 0xfffffffc
jle 0x140032fa0
cmp ecx, r12d
jg 0x140032fa0
mov r10d, dword [rsp + 0x68]
xor r8b, r8b
mov byte [rsp + 0x58], r8b
test r10b, 1
je 0x140032f81
sub r12d, ecx
jmp 0x140032f88
mov r12d, r9d
sub r12d, dword [rbp - 0x4c]
xor r8d, r8d
test r12d, r12d
mov eax, r8d
cmovns eax, r12d
mov r12d, eax
mov dword [rbp - 0x5c], eax
jmp 0x1400330dc
mov r10d, dword [rsp + 0x68]
test r10b, 1
cmove r12d, r9d
mov dword [rbp - 0x5c], r12d
jmp 0x140032fb8
mov r10d, dword [rsp + 0x68]
movzx r8d, byte [rsp + 0x58]
test r8b, r8b
je 0x1400330d9
mov ecx, dword [rbp - 0x4c]
lea r11, [rbp + 0x132]
sub ecx, 1
mov byte [rbp + 0x130], r8b
mov eax, 0x2b
lea r9, [rbp + 0x13e]
cmovs eax, edx
mov r8d, ecx
neg r8d
mov byte [rbp + 0x131], al
test ecx, ecx
lea rax, [rbp + 0x132]
cmovns r8d, ecx
cmovs r11, rax
cmp r8d, 0xa
jge 0x140033014
mov byte [r11], 0x30
inc r11
cmp r8d, 9
jle 0x140033097
nop word [rax + rax]
mov eax, 0x66666667
lea r9, [r9 - 1]
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
cmp edx, 9
jg 0x140033020
lea rcx, [r9 - 1]
add dl, 0x30
xor r9d, r9d
mov byte [rcx], dl
lea r8, [rbp + 0x13e]
mov edx, r9d
sub r8, rcx
lea rax, [rbp + 0x13e]
cmp rcx, rax
cmova r8, r9
test r8, r8
je 0x1400330a1
nop
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [r11], al
inc rdx
inc r11
cmp rdx, r8
jb 0x140033080
jmp 0x1400330a1
add r8b, 0x30
mov byte [r11], r8b
inc r11
lea rax, [rbp + 0x130]
sub r11d, eax
mov qword [rbp + 0x50], r11
lea edx, [r12 + r11]
mov qword [rbp - 0x40], rdx
cmp r12d, 1
jg 0x1400330c7
test r10b, 1
je 0x1400331b2
inc edx
mov dword [rbp - 0x50], r15d
mov qword [rbp - 0x40], rdx
mov r8d, edx
jmp 0x1400339f9
xor r8d, r8d
mov ecx, dword [rbp - 0x4c]
mov edx, 1
test ecx, ecx
cmovg edx, ecx
mov qword [rbp - 0x40], rdx
test r12d, r12d
jne 0x1400330f8
test r10b, 1
je 0x140033101
inc edx
add edx, r12d
mov qword [rbp - 0x40], rdx
mov r11, qword [rbp - 0x18]
test r11, r11
je 0x1400331ac
mov ecx, dword [rbp - 0x4c]
test ecx, ecx
jle 0x1400331ac
mov ebx, r8d
mov dword [rbp - 0x20], r8d
mov r10d, r8d
mov dword [rbp - 0x1c], ebx
movzx r8d, byte [r11]
mov r12d, ecx
mov dword [rbp - 0x2c], ecx
cmp r8b, 0x7f
je 0x140033196
nop word [rax + rax]
movsx eax, r8b
mov r9d, r10d
cmp r12d, eax
jle 0x140033183
movzx edx, byte [r11 + 1]
lea rcx, [r11 + 1]
sub r12d, eax
mov r8d, edx
movzx eax, byte [r11]
test dl, dl
cmove r8d, eax
cmove rcx, r11
lea eax, [rbx + 1]
mov r11, rcx
cmove eax, ebx
inc r10d
test dl, dl
mov ebx, eax
cmovne r10d, r9d
cmp r8b, 0x7f
jne 0x140033140
mov rdx, qword [rbp - 0x40]
mov dword [rbp - 0x2c], r12d
mov dword [rbp - 0x1c], ebx
mov qword [rbp - 0x18], r11
mov dword [rbp - 0x20], r10d
lea eax, [r10 + rbx]
mov dword [rbp - 0x50], r15d
add edx, eax
mov qword [rbp - 0x40], rdx
mov r8d, edx
jmp 0x1400339f9
mov eax, dword [rbp - 0x4c]
mov dword [rbp - 0x2c], eax
mov r8, qword [rbp - 0x40]
mov dword [rbp - 0x50], r15d
jmp 0x1400339f9
mov rax, qword [rbp - 0x58]
cmp byte [rax], 0x2d
jne 0x1400331d4
inc rax
mov byte [rsp + 0x40], 0x2d
mov qword [rbp - 0x58], rax
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
mov rcx, qword [rbp - 0x58]
test eax, eax
je 0x1400331ec
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strlwr]
jmp 0x1400331f2
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strupr]
mov qword [rbp - 0x58], rax
mov r12, rax
mov rax, 0xffffffffffffffff
mov dword [rbp - 0x4c], 0x7fffffff
nop word [rax + rax]
inc rax
cmp byte [r12 + rax], 0
jne 0x140033210
mov r8d, eax
mov dword [rbp - 0x50], r15d
mov qword [rbp - 0x40], r8
jmp 0x1400339f9
test r9b, 0x20
jne 0x140033245
bt r9d, 0xa
jb 0x140033245
bt r9d, 0xb
jb 0x140033245
bt r9d, 0xc
jae 0x140033277
test r8, r8
je 0x14003325e
movsxd rdx, dword [rsp + 0x6c]
movsxd rax, r10d
mov rcx, qword [r8 + rax*8]
mov qword [rcx], rdx
jmp 0x1400332fc
mov rcx, qword [r11]
add r11, 8
movsxd rdx, dword [rsp + 0x6c]
mov qword [rsp + 0x70], r11
mov qword [rcx], rdx
jmp 0x1400332fc
test r9b, 0x10
je 0x14003328b
test r8, r8
je 0x1400332ea
movsxd rax, r10d
mov rcx, qword [r8 + rax*8]
jmp 0x1400332f6
test r9b, 0x40
je 0x1400332bb
test r8, r8
je 0x1400332a6
mov edx, dword [rsp + 0x6c]
movsxd rax, r10d
mov rcx, qword [r8 + rax*8]
mov word [rcx], dx
jmp 0x1400332fc
mov rcx, qword [r11]
add r11, 8
mov edx, dword [rsp + 0x6c]
mov qword [rsp + 0x70], r11
mov word [rcx], dx
jmp 0x1400332fc
bt r9d, 0xd
jae 0x14003327d
test r8, r8
je 0x1400332d6
mov edx, dword [rsp + 0x6c]
movsxd rax, r10d
mov rcx, qword [r8 + rax*8]
mov byte [rcx], dl
jmp 0x1400332fc
mov rcx, qword [r11]
add r11, 8
mov edx, dword [rsp + 0x6c]
mov qword [rsp + 0x70], r11
mov byte [rcx], dl
jmp 0x1400332fc
mov rcx, qword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov edx, dword [rsp + 0x6c]
mov dword [rcx], edx
mov r8, qword [rsp + 0x60]
inc r10d
mov rbx, qword [rbp + 0x220]
xor r11d, r11d
mov dword [rbp - 0x50], r10d
jmp 0x140032763
or r9d, 0x10
test r9d, 0x1c20
je 0x14003335a
test r8, r8
je 0x14003333f
movsxd rax, r10d
mov rax, qword [r8 + rax*8]
mov r8d, 8
mov qword [rbp - 0x68], rax
jmp 0x1400338c3
mov rax, qword [r11]
add r11, 8
mov qword [rbp - 0x68], rax
mov r8d, 8
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
test r9b, 0x10
jne 0x1400333e9
test r9b, 0x40
je 0x1400333a6
test r8, r8
je 0x140033388
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov r8d, 8
movzx eax, cx
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov ecx, dword [r11]
add r11, 8
movzx eax, cx
mov r8d, 8
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
bt r9d, 0xd
jae 0x1400333e9
test r8, r8
je 0x1400333cb
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov r8d, 8
movzx eax, cl
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov ecx, dword [r11]
add r11, 8
movzx eax, cl
mov r8d, 8
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
test r8, r8
je 0x140033404
movsxd rax, r10d
mov eax, dword [r8 + rax*8]
mov r8d, 8
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov eax, dword [r11]
add r11, 8
mov dword [rsp + 0x5c], eax
mov r8d, 8
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
test r8, r8
je 0x14003342d
movsxd rax, r10d
mov rax, qword [r8 + rax*8]
jmp 0x140033439
mov rax, qword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov qword [rbp - 0x68], rax
mov r8d, reloc.WS2_32.dll_recv
lea rax, [0x140089b80]
bts r9d, 0xc
mov qword [rbp + 0x18], rax
jmp 0x1400338c3
or r9d, 0x10
mov dword [rsp + 0x68], r9d
test r9b, 0x10
je 0x1400335e0
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x140033481
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r8, qword [rbp - 0x28]
movsxd rax, dword [rbp - 0x50]
mov qword [rbp - 0x10], 0
lea r13d, [rax + 1]
test r8, r8
je 0x14003349c
mov r12, qword [r8 + rax*8]
jmp 0x1400334ae
mov r10, qword [rsp + 0x70]
add r10, 8
mov qword [rsp + 0x70], r10
mov r12, qword [r10 - 8]
test r12, r12
jne 0x1400334ce
lea rax, str._null_
mov dword [rbp - 0x50], r13d
mov r13, qword [rbp - 0x70]
mov r12, rax
mov qword [rbp - 0x58], rax
jmp 0x14003361b
mov r15, 0xffffffffffffffff
inc r15
cmp word [r12 + r15*2], 0
jne 0x1400334d5
movsxd rax, dword [rbp - 0x5c]
add r15, r15
cmp eax, 0xffffffff
jne 0x1400334f1
mov rbx, r15
jmp 0x1400334fb
cmp r15, rax
mov rbx, rax
cmovb rbx, r15
lea rdx, [rbx + 4]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [rbp - 0x10], rax
mov rcx, rax
test rax, rax
je 0x1400335c2
add r15, r12
nop word [rax + rax]
movsx eax, byte [reloc.WS2_32.dll_accept]
lea r9, [rbx + rcx]
mov qword [rbp + 0x48], rcx
lea r8, [rbp + 0x48]
lea rcx, [rbp + 0x60]
mov dword [rsp + 0x20], eax
mov rdx, r15
mov qword [rbp + 0x60], r12
call fcn.1400353d0
mov ecx, eax
cmp eax, 2
jne 0x140033588
movsxd rcx, dword [rbp - 0x5c]
mov rax, rcx
cmp rbx, rcx
je 0x1400335a4
add rbx, rbx
cmp ecx, 0xffffffff
je 0x14003356c
cmp rbx, rcx
cmovb rax, rbx
mov rbx, rax
mov rcx, qword [rbp - 0x10]
lea rdx, [rbx + 4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [rbp - 0x10], rax
mov rcx, rax
test rax, rax
jne 0x140033520
jmp 0x1400335c2
dec eax
test eax, 0xfffffffd
je 0x14003359b
test ecx, ecx
jne 0x140035072
jmp 0x1400335a4
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x1400335b2
mov rax, qword [rbp + 0x48]
xor ecx, ecx
mov dword [rax], ecx
mov rcx, qword [rbp - 0x10]
jmp 0x1400335c2
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor ecx, ecx
mov qword [rbp - 0x10], rcx
test rcx, rcx
je 0x140034f5a
mov r15d, dword [rbp - 0x5c]
mov r12, rcx
mov dword [rbp - 0x50], r13d
mov r13, qword [rbp - 0x70]
mov qword [rbp - 0x58], rcx
jmp 0x14003361b
lea ecx, [r10 + 1]
test r8, r8
je 0x1400335f2
movsxd rax, r10d
mov r12, qword [r8 + rax*8]
jmp 0x1400335fe
mov r12, qword [r11]
add r11, 8
mov qword [rsp + 0x70], r11
mov qword [rbp - 0x58], r12
mov dword [rbp - 0x50], ecx
test r12, r12
jne 0x14003361b
lea rax, str._null_
mov dword [rbp - 0x50], ecx
mov r12, rax
mov qword [rbp - 0x58], rax
test r15d, r15d
js 0x14003368a
movsxd r8, r15d
xor edx, edx
mov rcx, r12
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x140033637
mov eax, r15d
jmp 0x140033641
sub eax, r12d
cmp eax, r15d
cmovg eax, r15d
movsxd rdx, eax
mov r8, rdx
test eax, eax
je 0x140033682
sub rdx, 1
je 0x140033662
movzx eax, byte [rdx + r12]
and al, 0xc0
cmp al, 0x80
jne 0x140033662
sub rdx, 1
jne 0x140033651
movzx eax, byte [rdx + r12]
test al, al
jns 0x1400339f0
movzx ecx, dl
sub cl, r8b
add cl, 7
sar al, cl
cmp al, 0xfe
je 0x1400339f0
mov r8, rdx
jmp 0x1400339f0
mov r8, 0xffffffffffffffff
inc r8
cmp byte [r12 + r8], 0
jne 0x140033691
jmp 0x1400339f0
or r9d, 0x10
test r9d, 0x1c20
je 0x1400336e3
test r8, r8
je 0x1400336c8
movsxd rax, r10d
mov rax, qword [r8 + rax*8]
mov r8d, 0xa
mov qword [rbp - 0x68], rax
jmp 0x1400338c3
mov rax, qword [r11]
add r11, 8
mov qword [rbp - 0x68], rax
mov r8d, 0xa
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
test r9b, 0x10
jne 0x140033772
test r9b, 0x40
je 0x14003372f
test r8, r8
je 0x140033711
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov r8d, 0xa
movzx eax, cx
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov ecx, dword [r11]
add r11, 8
movzx eax, cx
mov r8d, 0xa
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
bt r9d, 0xd
jae 0x140033772
test r8, r8
je 0x140033754
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov r8d, 0xa
movzx eax, cl
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov ecx, dword [r11]
add r11, 8
movzx eax, cl
mov r8d, 0xa
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
test r8, r8
je 0x14003378d
movsxd rax, r10d
mov eax, dword [r8 + rax*8]
mov r8d, 0xa
mov dword [rsp + 0x5c], eax
jmp 0x1400338c3
mov eax, dword [r11]
add r11, 8
mov dword [rsp + 0x5c], eax
mov r8d, 0xa
mov qword [rsp + 0x70], r11
jmp 0x1400338c3
lea rax, [0x140089b80]
jmp 0x1400337b8
lea rax, str.0123456789abcdef_
mov qword [rbp + 0x18], rax
mov edx, r9d
and edx, 0x1c20
je 0x1400337f0
mov ecx, dword [rsp + 0x5c]
test r8, r8
je 0x1400337e0
movsxd rax, r10d
mov rax, qword [r8 + rax*8]
mov qword [rbp - 0x68], rax
jmp 0x140033891
mov rax, qword [r11]
add r11, 8
mov qword [rbp - 0x68], rax
jmp 0x14003388c
test r9b, 0x10
jne 0x140033867
test r9b, 0x40
je 0x14003382e
test r8, r8
je 0x140033815
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov rax, qword [rbp - 0x68]
movzx ecx, cx
mov dword [rsp + 0x5c], ecx
jmp 0x140033891
mov ecx, dword [r11]
add r11, 8
mov rax, qword [rbp - 0x68]
movzx ecx, cx
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x70], r11
jmp 0x140033891
bt r9d, 0xd
jae 0x140033867
test r8, r8
je 0x14003384e
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov rax, qword [rbp - 0x68]
movzx ecx, cl
mov dword [rsp + 0x5c], ecx
jmp 0x140033891
mov ecx, dword [r11]
add r11, 8
mov rax, qword [rbp - 0x68]
movzx ecx, cl
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x70], r11
jmp 0x140033891
test r8, r8
je 0x14003387d
movsxd rax, r10d
mov ecx, dword [r8 + rax*8]
mov rax, qword [rbp - 0x68]
mov dword [rsp + 0x5c], ecx
jmp 0x140033891
mov ecx, dword [r11]
add r11, 8
mov rax, qword [rbp - 0x68]
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x70], r11
mov r8d, reloc.WS2_32.dll_recv
test r9b, 1
je 0x1400338be
test edx, edx
je 0x1400338a8
xor edx, edx
test rax, rax
jmp 0x1400338ac
xor edx, edx
test ecx, ecx
movzx ecx, byte [rbp - 0x47]
setne dl
test edx, edx
movzx eax, bl
cmovne ecx, eax
mov byte [rbp - 0x47], cl
btr r9d, 9
mov byte [rsp + 0x40], 0
inc r10d
mov dword [rbp - 0x34], r15d
mov eax, r9d
mov dword [rbp - 0x50], r10d
btr eax, 7
lea r12, [rbp + 0x1a4]
test r15d, r15d
mov qword [rbp - 0x58], r12
cmovs eax, r9d
mov dword [rsp + 0x68], eax
mov r9d, eax
test eax, 0x1c20
je 0x140033958
mov r10, qword [rbp - 0x68]
test r10, r10
jne 0x14003391c
test r15d, r15d
jne 0x14003391c
test r9b, 1
je 0x1400339b4
cmp r8d, 8
jne 0x1400339b4
mov rax, qword [rbp - 0x18]
lea rdx, [rbp + 0x1a4]
mov qword [rsp + 0x38], rax
mov ecx, r9d
movzx eax, byte [rbp - 0x60]
and ecx, 0x200
mov byte [rsp + 0x30], al
and r9d, 1
mov rax, qword [rbp + 0x18]
mov dword [rsp + 0x28], ecx
mov rcx, r10
mov qword [rsp + 0x20], rax
call fcn.140030b90
jmp 0x1400339ad
mov r10d, dword [rsp + 0x5c]
test r10d, r10d
jne 0x140033973
test r15d, r15d
jne 0x140033973
test r9b, 1
je 0x1400339b4
cmp r8d, 8
jne 0x1400339b4
mov rax, qword [rbp - 0x18]
lea rdx, [rbp + 0x1a4]
mov qword [rsp + 0x38], rax
mov ecx, r9d
movzx eax, byte [rbp - 0x60]
and ecx, 0x200
mov byte [rsp + 0x30], al
and r9d, 1
mov rax, qword [rbp + 0x18]
mov dword [rsp + 0x28], ecx
mov ecx, r10d
mov qword [rsp + 0x20], rax
call fcn.140032410
mov qword [rbp - 0x58], rax
mov r12, rax
lea rax, [rbp + 0x1a4]
sub eax, r12d
mov r8d, eax
mov qword [rbp - 0x40], r8
cmp eax, 0x64
jle 0x1400339f9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_abort]
int3
test ebx, ebx
je 0x140034f07
lea rax, [rbp + 0x140]
mov byte [rbp + 0x140], bl
mov qword [rbp - 0x58], rax
mov r8d, 1
mov qword [rbp - 0x40], r8
mov byte [rsp + 0x40], 0
cmp dword [rbp - 0x34], r8d
mov ebx, r8d
cmovg ebx, dword [rbp - 0x34]
cmp byte [rsp + 0x40], 0
mov dword [rbp - 8], ebx
je 0x140033a13
inc ebx
mov dword [rbp - 8], ebx
cmp byte [rbp - 0x47], 0
je 0x140033a1f
add ebx, 2
mov dword [rbp - 8], ebx
mov ecx, dword [rbp - 0x44]
mov eax, ebx
cmp ecx, ebx
cmovg eax, ecx
add eax, dword [rsp + 0x6c]
mov dword [rbp + 0x38], eax
cmp eax, 0x7fffffff
ja 0x140034eef
mov r15d, dword [rsp + 0x68]
mov r12d, r15d
and r12d, 0x84
mov dword [rbp - 0x30], r12d
jne 0x140033bee
mov r15d, ecx
sub r15d, ebx
test r15d, r15d
jle 0x140033be9
cmp r15d, 0x10
jle 0x140033b89
lea rax, [0x1400ca480]
nop dword [rax]
nop dword [rax + rax]
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x140033b78
test r14d, r14d
jne 0x140033aaa
xor esi, esi
jmp 0x140033b74
cmp byte [rsp + 0x78], 0
je 0x140033b0f
mov r8, qword [rbp + 0x220]
lea rcx, [r13 + 1]
movsxd rax, r14d
add rcx, rax
cmp rcx, r8
jbe 0x140033b0f
xor edx, edx
lea rax, [r8 - 1]
add rax, rcx
mov rcx, qword [rsp + 0x60]
div r8
mov rbx, rax
imul rbx, r8
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140033afb
mov byte [rsp + 0x79], 1
mov eax, 1
xor ecx, ecx
jmp 0x140033b60
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140033b5c
mov r12, qword [rsp + 0x60]
nop dword [rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r13, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r13
sub rsi, 1
jne 0x140033b20
mov r12d, dword [rbp - 0x30]
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
lea rax, [0x1400ca480]
lea rdi, [rbp + 0x70]
sub r15d, 0x10
cmp r15d, 0x10
jg 0x140033a80
mov ebx, dword [rbp - 8]
lea rax, [0x1400ca480]
add r14d, r15d
mov qword [rdi], rax
inc esi
movsxd rax, r15d
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140033be9
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov rax, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov r15d, dword [rsp + 0x68]
cmp byte [rsp + 0x40], 0
je 0x140033c56
inc r14d
mov qword [rdi + 8], 1
inc esi
mov dword [rsp + 0x54], r14d
lea rax, [rsp + 0x40]
mov dword [rsp + 0x50], esi
mov qword [rdi], rax
add rdi, 0x10
cmp esi, 8
jl 0x140033c56
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r9, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r8, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], r9
mov qword [rsp + 0x60], r8
jmp 0x140033c62
mov r9, qword [rbp + 0x220]
mov r8, qword [rsp + 0x60]
mov r13d, r15d
and r13d, 0x100
mov dword [rbp - 0x30], r13d
je 0x140033ce9
cmp dword [rbp - 0x4c], 0x7fffffff
jne 0x140033ce9
mov rax, qword [rbp - 0x58]
inc esi
mov rcx, qword [rbp - 0x40]
mov qword [rdi], rax
add r14d, ecx
movsxd rax, ecx
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034cf0
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
jmp 0x140034d00
cmp byte [rbp - 0x47], 0
je 0x140033d52
add r14d, 2
mov qword [rdi + 8], 2
inc esi
mov byte [rbp - 0x48], 0x30
lea rax, [rbp - 0x48]
mov dword [rsp + 0x54], r14d
mov qword [rdi], rax
add rdi, 0x10
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140033d52
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r9, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r8, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], r9
mov qword [rsp + 0x60], r8
cmp r12d, 0x80
mov r12, qword [rbp - 0x70]
jne 0x140033f0b
mov r15d, dword [rbp - 0x44]
sub r15d, ebx
test r15d, r15d
jle 0x140033f06
cmp r15d, 0x10
jle 0x140033ea2
lea rax, [0x1400ca490]
nop dword [rax]
nop dword [rax + rax]
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x140033e94
test r14d, r14d
jne 0x140033dba
xor esi, esi
jmp 0x140033e90
cmp byte [rsp + 0x78], 0
je 0x140033e17
movsxd rax, r14d
lea rcx, [r12 + 1]
add rcx, rax
cmp rcx, r9
jbe 0x140033e17
lea rax, [rcx - 1]
xor edx, edx
add rax, r9
mov rcx, r8
div r9
mov rbx, rax
imul rbx, r9
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140033e03
mov byte [rsp + 0x79], 1
mov eax, 1
xor ecx, ecx
jmp 0x140033e70
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140033e6c
mov r13, qword [rsp + 0x60]
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r12
sub rsi, 1
jne 0x140033e30
mov r13d, dword [rbp - 0x30]
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
mov r8, qword [rsp + 0x60]
lea rax, [0x1400ca490]
mov r9, qword [rbp + 0x220]
lea rdi, [rbp + 0x70]
sub r15d, 0x10
cmp r15d, 0x10
jg 0x140033d90
lea rax, [0x1400ca490]
add r14d, r15d
mov qword [rdi], rax
inc esi
movsxd rax, r15d
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140033f06
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r9, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r8, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r9
mov qword [rsp + 0x60], r8
mov r15d, dword [rsp + 0x68]
mov ecx, dword [rbp - 0x34]
mov rbx, qword [rbp - 0x40]
sub ecx, ebx
mov dword [rbp - 0x34], ecx
test ecx, ecx
jle 0x1400340b7
cmp ecx, 0x10
jle 0x14003404a
lea rax, [0x1400ca490]
nop
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x14003402b
test r14d, r14d
jne 0x140033f5a
xor esi, esi
jmp 0x140034027
cmp byte [rsp + 0x78], 0
je 0x140033fb7
movsxd rax, r14d
lea rcx, [r12 + 1]
add rcx, rax
cmp rcx, r9
jbe 0x140033fb7
lea rax, [rcx - 1]
xor edx, edx
add rax, r9
mov rcx, r8
div r9
mov rbx, rax
imul rbx, r9
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140033fa3
mov byte [rsp + 0x79], 1
mov eax, 1
xor ecx, ecx
jmp 0x140034010
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x14003400c
mov r13, qword [rsp + 0x60]
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r12
sub rsi, 1
jne 0x140033fd0
mov r13d, dword [rbp - 0x30]
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
mov ecx, dword [rbp - 0x34]
lea rax, [0x1400ca490]
lea rdi, [rbp + 0x70]
mov r8, qword [rsp + 0x60]
sub ecx, 0x10
mov r9, qword [rbp + 0x220]
mov dword [rbp - 0x34], ecx
cmp ecx, 0x10
jg 0x140033f30
mov rbx, qword [rbp - 0x40]
add r14d, ecx
movsxd rax, ecx
inc esi
mov qword [rdi + 8], rax
lea rdx, [0x1400ca490]
mov dword [rsp + 0x54], r14d
mov qword [rdi], rdx
add rdi, 0x10
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400340be
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov rax, qword [rbp - 0x80]
lea rdx, [0x1400ca490]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], rax
jmp 0x1400340c5
lea rdx, [0x1400ca490]
mov r8, qword [rbp + 0x220]
test r13d, r13d
je 0x140034cc6
cmp byte [rsp + 0x58], 0
je 0x14003439f
mov ebx, dword [rbp - 0x5c]
cmp ebx, 1
jg 0x14003412f
test r15b, 1
jne 0x14003412f
mov rax, qword [rbp - 0x58]
inc r14d
inc esi
mov qword [rdi], rax
mov qword [rdi + 8], 1
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jge 0x1400342ea
mov r13, qword [rsp + 0x60]
mov rcx, qword [rbp + 0x50]
lea rax, [rbp + 0x130]
mov qword [rdi], rax
add r14d, ecx
movsxd rax, ecx
jmp 0x140034ca9
mov rcx, qword [rbp - 0x58]
add r14d, 2
inc esi
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
movzx eax, byte [rcx]
inc rcx
mov byte [rbp + 0x140], al
mov rax, qword [rbp + 0x40]
mov qword [rdi + 8], 2
mov qword [rbp - 0x58], rcx
movzx eax, byte [rax]
mov byte [rbp + 0x141], al
lea rax, [rbp + 0x140]
mov qword [rdi], rax
add rdi, 0x10
cmp esi, 8
jl 0x1400341bc
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x58]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
jmp 0x1400341c1
mov r13, qword [rsp + 0x60]
mov r15d, dword [rbp + 0x10]
test r15d, r15d
jle 0x14003432b
mov qword [rdi], rcx
lea eax, [r15 - 1]
dec r14d
movsxd rcx, eax
add r14d, r15d
mov qword [rdi + 8], rcx
inc esi
mov dword [rsp + 0x54], r14d
add rdi, 0x10
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034232
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
sub ebx, r15d
test ebx, ebx
jle 0x140034116
cmp ebx, 0x10
jle 0x1400342be
lea rax, [0x1400ca490]
nop dword [rax]
add r14d, 0x10
mov qword [rdi], rax
inc esi
mov qword [rdi + 8], reloc.WS2_32.dll_recv
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x14003429e
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r14d, dword [rsp + 0x54]
lea rdi, [rbp + 0x70]
mov esi, dword [rsp + 0x50]
lea rax, [0x1400ca490]
sub ebx, 0x10
cmp ebx, 0x10
jg 0x140034250
mov r8, qword [rbp - 0x78]
mov r13, qword [rbp - 0x80]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
lea rax, [0x1400ca490]
add r14d, ebx
mov qword [rdi], rax
inc esi
movsxd rax, ebx
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034116
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
jmp 0x140034116
sub ebx, r15d
dec ebx
test ebx, ebx
jle 0x140034116
cmp ebx, 0x10
jle 0x1400342be
lea rax, [0x1400ca490]
add r14d, 0x10
mov qword [rdi], rax
inc esi
mov qword [rdi + 8], reloc.WS2_32.dll_recv
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034392
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r14d, dword [rsp + 0x54]
lea rdi, [rbp + 0x70]
mov esi, dword [rsp + 0x50]
lea rax, [0x1400ca490]
sub ebx, 0x10
cmp ebx, 0x10
jg 0x140034344
jmp 0x1400342a6
cmp dword [rbp - 0x4c], 0
jg 0x14003457b
inc r14d
mov qword [rdi], rdx
inc esi
mov qword [rdi + 8], 1
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034409
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
jmp 0x14003440e
mov r13, qword [rsp + 0x60]
mov r15d, dword [rbp - 0x5c]
test r15d, r15d
jne 0x14003441e
test byte [rsp + 0x68], 1
je 0x140034480
mov rax, qword [rbp + 0x40]
inc r14d
inc esi
mov qword [rdi], rax
mov qword [rdi + 8], 1
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034480
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
mov ebx, dword [rbp - 0x4c]
neg ebx
test ebx, ebx
jle 0x140034572
cmp ebx, 0x10
jle 0x14003450e
lea rax, [0x1400ca490]
nop dword [rax]
add r14d, 0x10
mov qword [rdi], rax
inc esi
mov qword [rdi + 8], reloc.WS2_32.dll_recv
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400344ee
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r14d, dword [rsp + 0x54]
lea rdi, [rbp + 0x70]
mov esi, dword [rsp + 0x50]
lea rax, [0x1400ca490]
sub ebx, 0x10
cmp ebx, 0x10
jg 0x1400344a0
mov r8, qword [rbp - 0x78]
mov r13, qword [rbp - 0x80]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
lea rax, [0x1400ca490]
add r14d, ebx
mov qword [rdi], rax
inc esi
movsxd rax, ebx
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034572
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
add r15d, dword [rbp - 0x4c]
jmp 0x14003484f
mov r15d, dword [rbp - 0x2c]
mov ebx, r15d
mov eax, dword [rbp]
mov rcx, qword [rbp - 0x58]
sub eax, ecx
cmp eax, r15d
cmovle ebx, eax
test ebx, ebx
jle 0x1400345f4
add r14d, ebx
movsxd rax, ebx
inc esi
mov qword [rdi + 8], rax
mov qword [rdi], rcx
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400345f4
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
jmp 0x1400345f9
mov r13, qword [rsp + 0x60]
xor ecx, ecx
test ebx, ebx
mov eax, ecx
cmovg eax, ebx
sub r15d, eax
test r15d, r15d
jle 0x14003478d
cmp r15d, 0x10
jle 0x140034729
lea rax, [0x1400ca490]
nop
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x14003471b
test r14d, r14d
jne 0x14003464a
mov esi, ecx
jmp 0x140034717
cmp byte [rsp + 0x78], 0
je 0x1400346ac
movsxd rax, r14d
lea rcx, [r12 + 1]
add rcx, rax
cmp rcx, r8
jbe 0x1400346aa
lea rax, [rcx - 1]
xor edx, edx
add rax, r8
mov rcx, r13
div r8
mov rbx, rax
imul rbx, r8
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor ecx, ecx
test rax, rax
jne 0x140034691
mov byte [rsp + 0x79], 1
lea eax, [rcx + 1]
jmp 0x1400346fc
mov r13, rax
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
jmp 0x1400346ac
xor ecx, ecx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x1400346fa
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r12
sub rsi, 1
jne 0x1400346c0
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
mov r8, qword [rbp + 0x220]
lea rax, [0x1400ca490]
lea rdi, [rbp + 0x70]
sub r15d, 0x10
cmp r15d, 0x10
jg 0x140034620
lea rax, [0x1400ca490]
add r14d, r15d
mov qword [rdi], rax
inc esi
movsxd rax, r15d
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x14003478d
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
mov r15, qword [rbp - 0x58]
movsxd rax, dword [rbp - 0x2c]
add r15, rax
cmp qword [rbp - 0x18], 0
mov qword [rbp - 0x58], r15
je 0x1400347dd
mov r12, qword [rbp - 0x18]
nop word [rax + rax]
mov eax, dword [rbp - 0x20]
mov ecx, eax
mov r9d, dword [rbp - 0x1c]
mov edx, eax
test r9d, r9d
jg 0x14003491e
test eax, eax
jg 0x140034922
cmp r15, qword [rbp]
mov r12, qword [rbp - 0x70]
cmova r15, qword [rbp]
mov qword [rbp - 0x58], r15
mov r15d, dword [rbp - 0x5c]
test r15d, r15d
jne 0x1400347ed
test byte [rsp + 0x68], 1
je 0x14003484f
mov rax, qword [rbp + 0x40]
inc r14d
inc esi
mov qword [rdi], rax
mov qword [rdi + 8], 1
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x14003484f
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
mov eax, dword [rbp]
mov ebx, r15d
mov rcx, qword [rbp - 0x58]
sub eax, ecx
cmp eax, r15d
cmovle ebx, eax
test ebx, ebx
jle 0x1400348c2
add r14d, ebx
movsxd rax, ebx
inc esi
mov qword [rdi + 8], rax
mov qword [rdi], rcx
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400348c2
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
xor ecx, ecx
test ebx, ebx
mov eax, ecx
cmovg eax, ebx
sub r15d, eax
test r15d, r15d
jle 0x140034d00
cmp r15d, 0x10
jle 0x140034c99
lea rax, [0x1400ca490]
nop dword [rax + rax]
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x140034c8b
test r14d, r14d
jne 0x140034bbe
mov esi, ecx
jmp 0x140034c87
test eax, eax
jle 0x140034927
dec eax
mov dword [rbp - 0x20], eax
test ecx, ecx
mov qword [rdi + 8], 1
lea eax, [r9 - 1]
cmovle r9d, eax
test edx, edx
lea rax, [r12 - 1]
mov dword [rbp - 0x1c], r9d
cmovle r12, rax
inc r14d
inc esi
mov qword [rbp - 0x18], r12
lea rax, [rbp - 0x60]
mov dword [rsp + 0x54], r14d
mov qword [rdi], rax
add rdi, 0x10
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x1400349a2
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
movsx ecx, byte [r12]
mov eax, dword [rbp]
mov ebx, ecx
sub eax, r15d
cmp eax, ecx
cmovle ebx, eax
test ebx, ebx
jle 0x140034a16
add r14d, ebx
movsxd rax, ebx
inc esi
mov qword [rdi + 8], rax
mov qword [rdi], r15
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034a16
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
movzx ecx, byte [r12]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
xor edx, edx
movsx r15d, cl
test ebx, ebx
mov eax, edx
cmovg eax, ebx
sub r15d, eax
test r15d, r15d
jle 0x140034ba9
cmp r15d, 0x10
jle 0x140034b49
lea rax, [0x1400ca490]
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x140034b3b
test r14d, r14d
jne 0x140034a6a
mov esi, edx
jmp 0x140034b37
cmp byte [rsp + 0x78], 0
je 0x140034acd
movsxd rax, r14d
mov r14, qword [rbp - 0x70]
lea rcx, [r14 + 1]
add rcx, rax
cmp rcx, r8
jbe 0x140034ad1
lea rax, [rcx - 1]
xor edx, edx
add rax, r8
mov rcx, r13
div r8
mov rbx, rax
imul rbx, r8
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor edx, edx
test rax, rax
jne 0x140034ab4
mov byte [rsp + 0x79], 1
lea eax, [rdx + 1]
jmp 0x140034b1c
mov r13, rax
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
jmp 0x140034ad1
mov r14, qword [rbp - 0x70]
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140034b1a
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r14 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r14, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r14
sub rsi, 1
jne 0x140034ae0
xor edx, edx
mov eax, edx
mov r14d, edx
mov esi, edx
test eax, eax
jne 0x140034fd1
mov r8, qword [rbp + 0x220]
lea rax, [0x1400ca490]
lea rdi, [rbp + 0x70]
sub r15d, 0x10
cmp r15d, 0x10
jg 0x140034a40
lea rax, [0x1400ca490]
add r14d, r15d
mov qword [rdi], rax
inc esi
movsxd rax, r15d
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034ba9
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov r8, qword [rbp - 0x78]
lea rdi, [rbp + 0x70]
mov r13, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x50]
mov qword [rbp + 0x220], r8
mov qword [rsp + 0x60], r13
mov r15, qword [rbp - 0x58]
movsx rax, byte [r12]
add r15, rax
mov qword [rbp - 0x58], r15
jmp 0x1400347b0
cmp byte [rsp + 0x78], 0
je 0x140034c20
movsxd rax, r14d
lea rcx, [r12 + 1]
add rcx, rax
cmp rcx, r8
jbe 0x140034c1e
lea rax, [rcx - 1]
xor edx, edx
add rax, r8
mov rcx, r13
div r8
mov rbx, rax
imul rbx, r8
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
xor ecx, ecx
test rax, rax
jne 0x140034c05
mov byte [rsp + 0x79], 1
lea eax, [rcx + 1]
jmp 0x140034c6c
mov r13, rax
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
jmp 0x140034c20
xor ecx, ecx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140034c6a
nop dword [rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r12
sub rsi, 1
jne 0x140034c30
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
mov r8, qword [rbp + 0x220]
lea rax, [0x1400ca490]
lea rdi, [rbp + 0x70]
sub r15d, 0x10
cmp r15d, 0x10
jg 0x1400348f0
lea rax, [0x1400ca490]
add r14d, r15d
mov qword [rdi], rax
movsxd rax, r15d
inc esi
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034d00
jmp 0x140033ca8
mov rax, qword [rbp - 0x58]
add r14d, ebx
mov qword [rdi], rax
inc esi
movsxd rax, ebx
mov qword [rdi + 8], rax
add rdi, 0x10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034cfb
jmp 0x140033ca8
mov r12, qword [rbp - 0x70]
mov r8, qword [rbp + 0x220]
mov r13, qword [rsp + 0x60]
test byte [rsp + 0x68], 4
je 0x140034e8a
mov ecx, dword [rbp - 0x44]
sub ecx, dword [rbp - 8]
mov dword [rbp - 0x44], ecx
test ecx, ecx
jle 0x140034e8a
cmp ecx, 0x10
jle 0x140034e36
lea rax, [0x1400ca480]
jmp 0x140034d37
mov r8, qword [rbp + 0x220]
mov qword [rdi], rax
add r14d, 0x10
mov qword [rdi + 8], reloc.WS2_32.dll_recv
inc esi
add rdi, 0x10
cmp esi, 8
jl 0x140034e27
test r14d, r14d
jne 0x140034d61
xor esi, esi
jmp 0x140034e23
cmp byte [rsp + 0x78], 0
je 0x140034dc1
movsxd rax, r14d
lea rcx, [r12 + 1]
add rcx, rax
cmp rcx, r8
jbe 0x140034dc1
lea rax, [rcx - 1]
xor edx, edx
add rax, r8
mov rcx, r13
div r8
mov rbx, rax
imul rbx, r8
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140034daa
mov byte [rsp + 0x79], 1
mov eax, 1
xor ecx, ecx
jmp 0x140034e0c
mov r13, rax
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x220], rbx
mov qword [rbp - 0x78], rbx
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140034e08
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r12 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r12, rbx
lea rdi, [rdi + 0x10]
mov qword [rbp - 0x70], r12
sub rsi, 1
jne 0x140034dd0
xor ecx, ecx
mov eax, ecx
mov r14d, ecx
mov esi, ecx
test eax, eax
jne 0x140034fd1
mov ecx, dword [rbp - 0x44]
lea rax, [0x1400ca480]
lea rdi, [rbp + 0x70]
sub ecx, 0x10
mov dword [rbp - 0x44], ecx
cmp ecx, 0x10
jg 0x140034d30
lea rax, [0x1400ca480]
add r14d, ecx
inc esi
mov qword [rdi], rax
movsxd rax, ecx
mov qword [rdi + 8], rax
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], esi
cmp esi, 8
jl 0x140034e8a
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov rax, qword [rbp - 0x78]
mov r14d, dword [rsp + 0x54]
mov qword [rbp + 0x220], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov edx, dword [rbp + 0x38]
mov dword [rsp + 0x6c], edx
test r14d, r14d
je 0x140034ec8
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140030a80
test eax, eax
jne 0x140034ef9
mov rbx, qword [rbp - 0x78]
mov r8, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x54]
mov edx, dword [rsp + 0x6c]
mov qword [rbp + 0x220], rbx
mov qword [rsp + 0x60], r8
jmp 0x140034ed4
mov r8, qword [rsp + 0x60]
mov rbx, qword [rbp + 0x220]
mov r13, qword [rbp - 0x70]
lea rdi, [rbp + 0x70]
mov r12, qword [rbp + 8]
xor r11d, r11d
mov esi, r11d
mov dword [rsp + 0x50], esi
jmp 0x140032763
mov ebx, 0xffffffff
jmp 0x140034fd5
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x60], rax
jmp 0x140034fd1
test r14d, r14d
je 0x140034fbd
cmp byte [rsp + 0x78], 0
je 0x140034f6f
mov rbx, qword [rbp + 0x220]
lea rcx, [r13 + 1]
movsxd rax, r14d
add rcx, rax
cmp rcx, rbx
jbe 0x140034f6f
xor edx, edx
lea rax, [rbx - 1]
add rax, rcx
mov rcx, qword [rsp + 0x60]
div rbx
imul rax, rbx
mov rdx, rax
mov qword [rbp + 0x220], rax
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140034f61
mov byte [rsp + 0x79], 1
jmp 0x140034fd1
mov r8, rax
mov qword [rsp + 0x60], rax
mov qword [rbp - 0x78], rbx
jmp 0x140034f74
mov r8, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
test esi, esi
jle 0x140034fbd
nop dword [rax]
mov rcx, qword [rdi + 8]
mov edx, dword [rbp - 0x78]
sub edx, dword [rbp - 0x70]
dec edx
movsxd rax, edx
cmp rax, rcx
cmovbe ecx, edx
mov rdx, qword [rdi]
movsxd rbx, ecx
lea rcx, [r8 + r13]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8, qword [rsp + 0x60]
lea rdi, [rdi + 0x10]
add r13, rbx
mov qword [rbp - 0x70], r13
sub rsi, 1
jne 0x140034f80
cmp qword [rbp + 0x220], 0
jbe 0x140034fd1
mov rax, qword [rsp + 0x60]
mov byte [rax + r13], 0
mov ebx, dword [rsp + 0x6c]
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x140034fe6
mov rcx, rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rax, qword [rbp - 0x10]
test rax, rax
je 0x140034ff8
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp byte [rsp + 0x79], 0
je 0x140035004
mov ebx, 0xffffffff
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x140035022
lea rcx, [rbp + 0xf0]
cmp rax, rcx
je 0x140035022
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp byte [rsp + 0x78], 0
je 0x140035046
test ebx, ebx
jns 0x14003503a
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x140035046
mov rcx, qword [rbp + 0x68]
mov rax, qword [rsp + 0x60]
mov qword [rcx], rax
mov eax, ebx
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.14006a480
mov rbx, qword [rsp + 0x318]
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r8d, 0x19e
lea rdx, str.boralib_string_bsd_vsnprintf.c
lea rcx, str.NOT_IMPLEMENTED__s:_d_n
call fcn.14002b900
int3