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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rbp, r8
mov rdx, qword [rdx]
mov rdi, rcx
mov r9, qword [rdx]
mov r10, qword [rdx + 0x10]
cmp r9, r10
jne 0x14004c2eb
xor eax, eax
jmp 0x14004c2ef
movzx eax, byte [r9]
movsx eax, al
add eax, 0xffffffde
cmp eax, 0x59
ja case.0x14004c31b.35
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0x4c7d8]
mov ecx, dword [r8 + rax*4 + 0x4c7bc]
add rcx, r8
jmp rcx
mov rcx, rdx
cmp r9, r10
je 0x14004c335
lea rax, [r9 + 1]
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rcx, rdx
mov r9, qword [rdx]
cmp r9, qword [rcx + 0x10]
je 0x14004c3ab
cmp byte [r9], 0x75
jne 0x14004c3ab
lea rax, [r9 + 1]
mov qword [rcx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x6c
jne 0x14004c3ab
inc rax
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x6c
jne 0x14004c3ab
inc rax
mov rcx, rbp
mov qword [rdx], rax
call fcn.14004d880
test al, al
jne 0x14004c707
mov rax, qword [rbx]
mov rcx, qword [rax]
sub rcx, qword [rax + 8]
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
mov qword [rdi + 0x38], rcx
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rdx]
sub rax, qword [rdx + 8]
mov edx, 3
mov dword [rdi + 0x30], edx
mov qword [rdi + 0x38], rax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rcx, rdx
cmp r9, r10
je 0x14004c3e6
lea rax, [r9 + 1]
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rcx, rdx
mov r9, qword [rdx]
cmp r9, qword [rcx + 0x10]
je 0x14004c3ab
cmp byte [r9], 0x72
jne 0x14004c3ab
lea rax, [r9 + 1]
mov qword [rcx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x75
jne 0x14004c3ab
inc rax
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x65
jne 0x14004c3ab
inc rax
mov rcx, rbp
mov qword [rdx], rax
mov dl, 1
call fcn.14004d820
jmp 0x14004c37e
mov rcx, rdx
cmp r9, r10
je 0x14004c44e
lea rax, [r9 + 1]
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rcx, rdx
mov r9, qword [rdx]
cmp r9, qword [rcx + 0x10]
je 0x14004c3ab
cmp byte [r9], 0x61
jne 0x14004c3ab
lea rax, [r9 + 1]
mov qword [rcx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x6c
jne 0x14004c3ab
inc rax
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x73
jne 0x14004c3ab
inc rax
mov qword [rdx], rax
mov rdx, qword [rbx]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004c3ab
cmp byte [rax], 0x65
jne 0x14004c3ab
inc rax
mov rcx, rbp
mov qword [rdx], rax
xor edx, edx
call fcn.14004d820
jmp 0x14004c37e
xor r9d, r9d
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp 0x14004c880
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r14
cmp r9, r10
je 0x14004c50b
lea rax, [r9 + 1]
mov qword [rdx], rax
mov rcx, qword [rbp + 0x38]
mov rax, qword [rbp + 0x40]
sub rax, rcx
cmp rax, 0x10
jge 0x14004c529
lea rcx, [rbp + 0x20]
call fcn.14004dce0
mov rcx, qword [rbp + 0x38]
lea rax, [rcx + 0x10]
xorps xmm0, xmm0
mov qword [rbp + 0x38], rax
mov edx, 3
movups xmmword [rcx], xmm0
mov word [rcx + 0xe], dx
movabs r14, 0x100002600
nop word [rax + rax]
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004c57a
movsx rax, al
bt r14, rax
jae 0x14004c57a
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c550
inc rax
mov qword [rcx], rax
jmp 0x14004c550
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c5bc
cmp byte [rax], 0x7d
jne 0x14004c5bc
inc rax
mov qword [rcx], rax
movabs rcx, 0xffff000000000000
mov rax, qword [rbp + 0x38]
mov word [rax - 2], dx
and qword [rax - 8], rcx
xor esi, esi
mov qword [rax - 0x10], rsi
jmp 0x14004c6fd
xor esi, esi
nop
cmp rax, qword [rcx + 0x10]
je 0x14004c76f
cmp byte [rax], 0x22
jne 0x14004c76f
mov r9b, 1
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call 0x14004c880
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
nop
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004c61a
movsx rax, al
bt r14, rax
jae 0x14004c61a
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c5f0
inc rax
mov qword [rcx], rax
jmp 0x14004c5f0
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c762
cmp byte [rax], 0x3a
jne 0x14004c762
inc rax
mov qword [rcx], rax
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004c667
movsx rax, al
bt r14, rax
jae 0x14004c667
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c643
jmp 0x14004c63d
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call fcn.14004c2c0
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov rcx, rbx
call fcn.14004c840
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov rcx, qword [rbx]
inc esi
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c755
movzx edx, byte [rax]
cmp dl, 0x2c
jne 0x14004c725
inc rax
mov qword [rcx], rax
mov rcx, rbx
call fcn.14004c840
cmp dword [rdi + 0x30], 0
jne 0x14004c6fd
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c76f
cmp byte [rax], 0x7d
jne 0x14004c5c0
mov edx, esi
mov rcx, rbp
call fcn.14004d520
mov rcx, qword [rbx]
test al, al
mov rax, qword [rcx]
jne 0x14004c717
sub rax, qword [rcx + 8]
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
mov qword [rdi + 0x38], rax
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp rax, qword [rcx + 0x10]
je 0x14004c6fd
inc rax
mov qword [rcx], rax
jmp 0x14004c6fd
cmp dl, 0x7d
jne 0x14004c755
inc rax
mov edx, esi
mov qword [rcx], rax
mov rcx, rbp
call fcn.14004d520
test al, al
jne 0x14004c6fd
mov rax, qword [rbx]
mov rcx, qword [rax]
sub rcx, qword [rax + 8]
mov qword [rdi + 0x38], rcx
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
jmp 0x14004c6fd
sub rax, qword [rcx + 8]
mov dword [rdi + 0x30], 6
jmp 0x14004c6f9
sub rax, qword [rcx + 8]
mov dword [rdi + 0x30], 5
jmp 0x14004c6f9
sub rax, qword [rcx + 8]
mov dword [rdi + 0x30], 4
jmp 0x14004c6f9
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp 0x14004cbd0
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp 0x14004ce10
mov qword [rsp + 0x18], rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x30
mov r10, qword [rdx]
movzx r12d, r9b
mov r13, r8
mov r14, rdx
mov rbp, rcx
mov rax, qword [r10]
cmp rax, qword [r10 + 0x10]
je 0x14004c8b0
inc rax
mov qword [r10], rax
mov rbx, rbp
mov qword [rsp + 0x60], rsi
xor edi, edi
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x68], r15
lea rdx, [0x1401acec0]
nop
mov rcx, r14
call fcn.14002be40
mov rcx, qword [r14]
cmp al, 0x5c
jne 0x14004ca66
mov rax, qword [rcx]
mov r15, rax
sub r15, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
je 0x14004c8f9
inc rax
mov qword [rcx], rax
mov rcx, r14
call fcn.14002be40
movzx ecx, al
movzx esi, byte [rcx + rdx]
test sil, sil
je 0x14004c922
mov rcx, qword [r14]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004ca8d
jmp 0x14004ca87
cmp al, 0x75
jne 0x14004cae7
mov rcx, qword [r14]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004c93c
inc rax
mov qword [rcx], rax
mov r8, r15
mov rdx, r14
mov rcx, rbp
call fcn.14004da40
cmp dword [rbp + 0x30], 0
jne 0x14004cba7
lea r11d, [rax - 0xd800]
cmp r11d, 0x7ff
ja 0x14004ca4c
cmp eax, 0xdbff
ja 0x14004cad7
mov rcx, qword [r14]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cad7
cmp byte [rax], 0x5c
jne 0x14004cad7
inc rax
mov qword [rcx], rax
mov rcx, qword [r14]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cad7
cmp byte [rax], 0x75
jne 0x14004cad7
inc rax
xor edx, edx
mov qword [rcx], rax
xor r10d, r10d
mov rcx, r14
call fcn.14002be40
movsx r8d, al
shl edx, 4
add edx, r8d
mov r9d, edx
lea ecx, [r8 - 0x30]
cmp cl, 9
ja 0x14004c9e0
add edx, 0xffffffd0
add r9d, 0xffff23d0
jmp 0x14004ca0c
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x14004c9f4
add edx, 0xffffffc9
add r9d, 0xffff23c9
jmp 0x14004ca0c
sub r8b, 0x61
cmp r8b, 5
ja 0x14004cac7
add edx, 0xffffffa9
add r9d, 0xffff23a9
mov rcx, qword [r14]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004ca1e
inc rax
mov qword [rcx], rax
inc r10d
cmp r10d, 4
jl 0x14004c9b6
cmp dword [rbp + 0x30], 0
jne 0x14004cba7
cmp r9d, 0x3ff
ja 0x14004cad7
mov eax, r11d
shl eax, 0xa
or eax, r9d
add eax, 0x10000
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.14004dad0
mov edi, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
jmp 0x14004c8c8
cmp al, 0x22
je 0x14004cb26
cmp al, 0x20
jb 0x14004caf7
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
jne 0x14004ca84
xor sil, sil
jmp 0x14004ca8d
movzx esi, byte [rax]
inc rax
mov qword [rcx], rax
mov rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
sub rax, rcx
cmp rax, 1
jge 0x14004cab1
mov rcx, rbx
call fcn.14004dc40
mov rcx, qword [rbx + 0x18]
lea rdx, [0x1401acec0]
lea rax, [rcx + 1]
inc edi
mov qword [rbx + 0x18], rax
mov byte [rcx], sil
mov dword [rsp + 0x28], edi
jmp 0x14004c8d0
mov dword [rbp + 0x30], 8
mov qword [rbp + 0x38], r15
jmp 0x14004cba7
mov dword [rbp + 0x30], 9
mov qword [rbp + 0x38], r15
jmp 0x14004cba7
mov dword [rbp + 0x30], 0xa
mov qword [rbp + 0x38], r15
jmp 0x14004cba7
test al, al
mov rax, qword [rcx]
jne 0x14004cb12
sub rax, qword [rcx + 8]
mov qword [rbp + 0x38], rax
mov dword [rbp + 0x30], reloc.WS2_32.dll_inet_addr
jmp 0x14004cba7
sub rax, qword [rcx + 8]
mov qword [rbp + 0x38], rax
mov dword [rbp + 0x30], reloc.WS2_32.dll_inet_ntoa
jmp 0x14004cba7
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cb35
inc rax
mov qword [rcx], rax
mov rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
sub rax, rcx
cmp rax, 1
jge 0x14004cb52
mov rcx, rbx
call fcn.14004dc40
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 1]
inc edi
mov qword [rbx + 0x18], rax
mov byte [rcx], 0
cmp dword [rbp + 0x30], 0
jne 0x14004cba7
mov eax, edi
lea esi, [rdi - 1]
sub qword [rbx + 0x18], rax
mov rcx, qword [r13 + 0x38]
mov rax, qword [r13 + 0x40]
mov rdi, qword [rbx + 0x18]
sub rax, rcx
cmp rax, 0x10
jge 0x14004cb90
lea rcx, [r13 + 0x20]
call fcn.14004dce0
mov rcx, qword [r13 + 0x38]
lea rax, [rcx + 0x10]
mov r8d, esi
mov qword [r13 + 0x38], rax
mov rdx, rdi
mov r9, qword [r13 + 0x10]
call fcn.14004d8c0
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rbx, rdx
mov rbp, r8
mov rdx, qword [rdx]
mov rsi, rcx
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004cc05
inc rax
mov qword [rdx], rax
mov rcx, qword [r8 + 0x38]
mov rax, qword [r8 + 0x40]
sub rax, rcx
cmp rax, 0x10
jge 0x14004cc23
lea rcx, [r8 + 0x20]
call fcn.14004dce0
mov rcx, qword [rbp + 0x38]
lea rax, [rcx + 0x10]
xorps xmm0, xmm0
mov qword [rbp + 0x38], rax
mov edx, 4
movups xmmword [rcx], xmm0
mov word [rcx + 0xe], dx
movabs r14, 0x100002600
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004cc6e
movsx rax, al
bt r14, rax
jae 0x14004cc6e
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cc44
inc rax
mov qword [rcx], rax
jmp 0x14004cc44
cmp dword [rsi + 0x30], 0
jne 0x14004cdec
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004ccb0
cmp byte [rax], 0x5d
jne 0x14004ccb0
inc rax
mov qword [rcx], rax
movabs rcx, 0xffff000000000000
mov rax, qword [rbp + 0x38]
mov word [rax - 2], dx
and qword [rax - 8], rcx
xor edi, edi
mov qword [rax - 0x10], rdi
jmp 0x14004cdec
mov r8, rbp
mov rdx, rbx
mov rcx, rsi
xor edi, edi
call fcn.14004c2c0
cmp dword [rsi + 0x30], edi
jne 0x14004cdec
nop dword [rax]
inc edi
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004ccfc
movsx rax, al
bt r14, rax
jae 0x14004ccfc
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004ccd2
inc rax
mov qword [rcx], rax
jmp 0x14004ccd2
cmp dword [rsi + 0x30], 0
jne 0x14004cdec
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cddd
cmp byte [rax], 0x2c
jne 0x14004cdad
inc rax
mov qword [rcx], rax
mov rcx, rbx
call fcn.14002be40
cmp al, 0x20
ja 0x14004cd49
movsx rax, al
bt r14, rax
jae 0x14004cd49
mov rcx, qword [rbx]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004cd25
jmp 0x14004cd1f
cmp dword [rsi + 0x30], 0
jne 0x14004cdec
mov rax, qword [rbx]
mov rcx, qword [rax]
cmp rcx, qword [rax + 0x10]
je 0x14004cd64
cmp byte [rcx], 0x5d
je 0x14004cd7e
mov r8, rbp
mov rdx, rbx
mov rcx, rsi
call fcn.14004c2c0
cmp dword [rsi + 0x30], 0
je 0x14004ccd0
jmp 0x14004cdec
mov edx, edi
mov rcx, rbp
call fcn.14004d490
mov rcx, qword [rbx]
test al, al
mov rax, qword [rcx]
jne 0x14004cd9f
sub rax, qword [rcx + 8]
mov dword [rsi + 0x30], reloc.WS2_32.dll_recv
jmp 0x14004cde8
cmp rax, qword [rcx + 0x10]
je 0x14004cdec
inc rax
mov qword [rcx], rax
jmp 0x14004cdec
cmp byte [rax], 0x5d
jne 0x14004cddd
inc rax
mov edx, edi
mov qword [rcx], rax
mov rcx, rbp
call fcn.14004d490
test al, al
jne 0x14004cdec
mov rax, qword [rbx]
mov rcx, qword [rax]
sub rcx, qword [rax + 8]
mov qword [rsi + 0x38], rcx
mov dword [rsi + 0x30], reloc.WS2_32.dll_recv
jmp 0x14004cdec
sub rax, qword [rcx + 8]
mov dword [rsi + 0x30], 7
mov qword [rsi + 0x38], rax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov qword [rsp + 0x18], r8
push rbx
push rbp
push r12
push r13
push r15
sub rsp, 0x30
mov r10, qword [rdx]
mov r15, rcx
mov r11, rdx
xorps xmm3, xmm3
xorps xmm1, xmm1
mov rax, qword [r10]
mov rcx, rax
sub rcx, qword [r10 + 8]
mov qword [rsp + 0x68], rcx
cmp rax, qword [r10 + 0x10]
je 0x14004ce5b
cmp byte [rax], 0x2d
jne 0x14004ce5b
inc rax
mov r12b, 1
mov qword [r10], rax
mov r10, qword [rdx]
mov rax, qword [r10]
jmp 0x14004ce5e
xor r12b, r12b
xor ebp, ebp
mov qword [rsp + 0x28], rdi
xor r13b, r13b
mov qword [rsp + 0x20], r14
mov r9d, ebp
mov ebx, ebp
cmp rax, qword [r10 + 0x10]
je 0x14004d474
movsx ecx, byte [rax]
movsd xmm2, qword [0x1401b3f28]
cmp cl, 0x30
jne 0x14004cf5e
inc rax
mov edi, ebp
mov qword [r10], rax
mov rdx, qword [rdx]
xor r14b, r14b
mov rax, qword [rdx]
mov qword [rsp + 0x60], rsi
mov esi, ebp
cmp rax, qword [rdx + 0x10]
je 0x14004d243
cmp byte [rax], 0x2e
jne 0x14004d243
inc rax
mov qword [rdx], rax
mov rcx, qword [r11]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d232
movzx edx, byte [rax]
cmp dl, 0x30
jl 0x14004d232
cmp dl, 0x39
jg 0x14004d232
test r14b, r14b
jne 0x14004d1e0
test r13b, r13b
mov eax, edi
movabs r8, 0x1fffffffffffff
cmovne rax, r9
mov r9, rax
nop word [rax + rax]
mov rdx, qword [r11]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004d1b0
movsx ecx, byte [rax]
cmp cl, 0x30
jl 0x14004d1b0
cmp cl, 0x39
jg 0x14004d1b0
cmp r9, r8
ja 0x14004d1b0
inc rax
sub ecx, 0x30
mov qword [rdx], rax
dec esi
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
lea eax, [rbx + 1]
test r9, r9
cmove eax, ebx
mov ebx, eax
jmp 0x14004cf10
cmp cl, 0x31
jl 0x14004d474
cmp cl, 0x39
jg 0x14004d474
inc rax
lea edi, [rcx - 0x30]
mov qword [r10], rax
mov rdx, qword [rdx]
test r12b, r12b
je 0x14004cfd8
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r11]
mov rcx, qword [rdx]
cmp rcx, qword [rdx + 0x10]
je 0x14004ce9b
movsx r8d, byte [rcx]
mov rax, rdx
cmp r8b, 0x30
jl 0x14004d029
cmp r8b, 0x39
jg 0x14004d029
cmp edi, 0xccccccc
jb 0x14004cfc3
jne 0x14004d023
cmp r8b, 0x38
jg 0x14004d023
lea edi, [rdi + rdi*4]
inc ebx
lea edi, [rdi - 0x18]
lea rax, [rcx + 1]
lea edi, [r8 + rdi*2]
mov qword [rdx], rax
jmp 0x14004cf90
mov rcx, qword [rdx]
mov r10, rdx
cmp rcx, qword [rdx + 0x10]
je 0x14004ce9b
movsx r8d, byte [rcx]
mov rax, rdx
cmp r8b, 0x30
jl 0x14004d029
cmp r8b, 0x39
jg 0x14004d029
cmp edi, 0x19999999
jb 0x14004d00b
jne 0x14004d023
cmp r8b, 0x35
jg 0x14004d023
lea edi, [rdi + rdi*4]
inc ebx
lea rax, [rcx + 1]
lea edi, [rdi - 0x18]
mov qword [r10], rax
mov rdx, qword [r11]
lea edi, [r8 + rdi*2]
jmp 0x14004cfd8
mov r13b, 1
mov r9d, edi
xor r14b, r14b
test r13b, r13b
je 0x14004d0bb
test r12b, r12b
je 0x14004d117
movabs r8, 0xccccccccccccccc
nop dword [rax + rax]
mov rdx, qword [r11]
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004ce9e
movsx ecx, byte [rax]
cmp cl, 0x30
jl 0x14004d0b8
cmp cl, 0x39
jg 0x14004d0b8
cmp r9, r8
jb 0x14004d079
jne 0x14004d08e
cmp cl, 0x38
jg 0x14004d08e
inc rax
sub ecx, 0x30
mov qword [rdx], rax
inc ebx
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
jmp 0x14004d050
xorps xmm1, xmm1
test r9, r9
js 0x14004d09d
cvtsi2sd xmm1, r9
jmp 0x14004d0b5
mov rax, r9
mov rcx, r9
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm1, rcx
addsd xmm1, xmm1
mov r14b, 1
mov rax, rdx
mov rdx, rax
test r14b, r14b
je 0x14004ce9e
nop word [rax + rax]
mov rcx, qword [r11]
mov rdx, rcx
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004ce9e
movsx r8d, byte [rax]
cmp r8b, 0x30
jl 0x14004ce9e
cmp r8b, 0x39
jg 0x14004ce9e
inc rax
mulsd xmm1, xmm2
mov qword [rcx], rax
lea eax, [r8 - 0x30]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
jmp 0x14004d0d0
movabs r10, 0x1999999999999999
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r11]
mov r8, qword [rdx]
cmp r8, qword [rdx + 0x10]
je 0x14004ce9e
movsx ecx, byte [r8]
mov rax, rdx
cmp cl, 0x30
jl 0x14004d0bb
cmp cl, 0x39
jg 0x14004d0bb
cmp r9, r10
jb 0x14004d165
jne 0x14004d17b
cmp cl, 0x35
jg 0x14004d17b
lea rax, [r8 + 1]
sub ecx, 0x30
mov qword [rdx], rax
inc ebx
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
jmp 0x14004d130
xorps xmm1, xmm1
test r9, r9
js 0x14004d190
cvtsi2sd xmm1, r9
mov r14b, 1
jmp 0x14004d0d0
mov rax, r9
mov rcx, r9
shr rcx, 1
and eax, 1
or rcx, rax
mov r14b, 1
cvtsi2sd xmm1, rcx
addsd xmm1, xmm1
jmp 0x14004d0d0
xorps xmm1, xmm1
test r9, r9
js 0x14004d1bf
cvtsi2sd xmm1, r9
jmp 0x14004d1d7
mov rax, r9
mov rcx, r9
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm1, rcx
addsd xmm1, xmm1
mov r14b, 1
nop word [rax + rax]
mov rcx, qword [r11]
mov rdx, rcx
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d243
movsx r8d, byte [rax]
cmp r8b, 0x30
jl 0x14004d243
cmp r8b, 0x39
jg 0x14004d243
lea rdx, [rax + 1]
cmp ebx, 0x11
jge 0x14004d22d
lea eax, [r8 - 0x30]
mulsd xmm1, xmm2
dec esi
movd xmm0, eax
lea eax, [rbx + 1]
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
comisd xmm0, xmm3
movaps xmm1, xmm0
cmovbe eax, ebx
mov ebx, eax
mov qword [rcx], rdx
jmp 0x14004d1e0
sub rax, qword [rcx + 8]
mov dword [r15 + 0x30], reloc.WS2_32.dll_ntohl
jmp 0x14004d3fb
mov rax, qword [rdx]
cmp rax, qword [rdx + 0x10]
je 0x14004d374
cmp byte [rax], 0x65
je 0x14004d25e
cmp byte [rax], 0x45
jne 0x14004d374
inc rax
mov qword [rdx], rax
test r14b, r14b
jne 0x14004d29c
test r13b, r13b
mov eax, edi
mov rcx, r9
xorps xmm1, xmm1
cmove rcx, rax
test rcx, rcx
js 0x14004d284
cvtsi2sd xmm1, rcx
jmp 0x14004d299
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mov r14b, 1
mov rcx, qword [r11]
xor r8b, r8b
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d41b
cmp byte [rax], 0x2b
je 0x14004d2bc
cmp byte [rax], 0x2d
jne 0x14004d2c8
mov r8b, 1
inc rax
mov qword [rcx], rax
mov rcx, qword [r11]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d41b
movsx edx, byte [rax]
cmp dl, 0x30
jl 0x14004d41b
cmp dl, 0x39
jg 0x14004d41b
inc rax
lea ebp, [rdx - 0x30]
mov qword [rcx], rax
test r8b, r8b
je 0x14004d3b0
mov r8, qword [r11]
lea ecx, [rsi + 0x7ffffff7]
mov eax, 0x66666667
imul ecx
mov r10d, edx
sar r10d, 2
mov eax, r10d
shr eax, 0x1f
add r10d, eax
nop dword [rax]
mov rax, qword [r8]
cmp rax, qword [r8 + 0x10]
je 0x14004d372
movsx edx, byte [rax]
cmp dl, 0x30
jl 0x14004d372
cmp dl, 0x39
jg 0x14004d372
lea ebp, [rbp + rbp*4]
inc rax
lea ebp, [rbp - 0x18]
mov qword [r8], rax
mov r8, qword [r11]
lea ebp, [rdx + rbp*2]
cmp ebp, r10d
jle 0x14004d320
mov rcx, r8
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d320
movzx edx, byte [rax]
cmp dl, 0x30
jl 0x14004d320
cmp dl, 0x39
jg 0x14004d320
inc rax
mov qword [rcx], rax
mov r8, qword [r11]
jmp 0x14004d34e
neg ebp
test r14b, r14b
je 0x14004d429
lea edx, [rsi + rbp]
movaps xmm0, xmm1
call fcn.14002be60
comisd xmm0, xmmword [0x1401b3f80]
ja 0x14004d3ee
test r12b, r12b
je 0x14004d39e
xorps xmm0, xmmword [0x1401b4120]
mov rcx, qword [rsp + 0x70]
movaps xmm1, xmm0
call fcn.14004d5b0
jmp 0x14004d466
mov r8d, 0x134
sub r8d, esi
nop dword [rax]
mov rcx, qword [r11]
mov rax, qword [rcx]
cmp rax, qword [rcx + 0x10]
je 0x14004d374
movsx edx, byte [rax]
cmp dl, 0x30
jl 0x14004d374
cmp dl, 0x39
jg 0x14004d374
lea ebp, [rbp + rbp*4]
inc rax
lea ebp, [rbp - 0x18]
mov qword [rcx], rax
lea ebp, [rdx + rbp*2]
cmp ebp, r8d
jle 0x14004d3c0
mov dword [r15 + 0x30], reloc.WS2_32.dll_listen
mov rax, qword [rsp + 0x68]
mov qword [r15 + 0x38], rax
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
add rsp, 0x30
pop r15
pop r13
pop r12
pop rbp
pop rbx
ret
sub rax, qword [rcx + 8]
mov dword [r15 + 0x30], reloc.WS2_32.dll_ntohs
jmp 0x14004d3fb
mov rcx, qword [rsp + 0x70]
test r13b, r13b
je 0x14004d44f
test r12b, r12b
je 0x14004d445
neg r9
mov rdx, r9
call fcn.14004d6a0
jmp 0x14004d466
mov rdx, r9
call fcn.14004d610
jmp 0x14004d466
test r12b, r12b
je 0x14004d45f
neg edi
mov edx, edi
call fcn.14004d7c0
jmp 0x14004d466
mov edx, edi
call fcn.14004d750
test al, al
jne 0x14004d3ff
mov dword [r15 + 0x30], reloc.WS2_32.dll_recv
jmp 0x14004d3f6
sub rax, qword [r10 + 8]
mov qword [r15 + 0x38], rax
mov dword [r15 + 0x30], 3
jmp 0x14004d404