Function at 0x14004e340
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xca8
lea rbp, [rsp + 0x40]
movzx r11d, r8b
movzx esi, r8b
mov dword [rbp], r11d
mov rdi, r9
mov r14, rdx
mov rbx, rcx
mov r13, 0xffffffffffffffff
inc r13
cmp word [rdx + r13*2], 0
jne 0x14004e383
mov eax, SafeArrayAllocDescriptor
test r11b, r11b
je 0x14004e3bc
xor r8d, r8d
mov qword [rbp + 0xcd0], r14
mov word [rbp + 0x160], r8w
mov r12d, r8d
mov byte [rbp + 0xcc0], r8b
mov r10, r14
jmp 0x14004f222
mov r8d, 6
lea rdx, [0x1400ff3c0]
mov rcx, r14
call fcn.1400c0a00
lea rdx, [0x1400ff3b0]
mov ecx, 5
test eax, eax
jne 0x14004e3e7
lea r12d, [rcx + 0x3c]
jmp 0x14004e422
mov r8, rcx
mov rcx, r14
call fcn.1400c0a00
test eax, eax
jne 0x14004e401
mov eax, 0xa
lea r12d, [rax + 0x38]
jmp 0x14004e427
mov r8d, 6
lea rdx, [0x1400ff388]
mov rcx, r14
call fcn.1400c0a00
test eax, eax
jne 0x14004e9ba
lea r12d, [rax + 0x62]
mov eax, reloc.WSOCK32.dll_ioctlsocket
lea rdi, [rax + r14]
movzx eax, word [rax + r14]
test ax, ax
je 0x14004e964
cmp ax, 0x20
je 0x14004e45c
cmp ax, 9
jne 0x14004e9b3
nop dword [rax]
cmp ax, 0x20
je 0x14004e45c
cmp ax, 9
jne 0x14004e466
movzx eax, word [rdi + 2]
add rdi, 2
jmp 0x14004e450
test ax, ax
je 0x14004e964
cmp ax, 0x7f
ja 0x14004e48b
movzx ecx, ax
call fcn.1400c5550
test eax, eax
jne 0x14004e48b
cmp word [rdi], 0x5f
jne 0x14004e9b3
mov rax, qword [0x14011f188]
cmp qword [rax + 0x28], 0
jne 0x14004e4a3
test r12b, 2
jne 0x14004e99c
mov rax, qword [rbx + 0x78]
xor r13b, r13b
cmp word [rdi], 0
mov qword [rbp + 0x10], rax
je 0x14004e992
mov r15d, r12d
and r15d, 1
mov dword [rbp], r15d
xor r14d, r14d
lea rbx, [rdi + 2]
nop word [rax + rax]
movzx eax, word [rbx]
cmp eax, 0x7f
ja 0x14004e4e9
mov ecx, eax
call fcn.1400c5550
test eax, eax
jne 0x14004e4e9
cmp word [rbx], 0x5f
jne 0x14004e4ef
add rbx, 2
jmp 0x14004e4d0
mov rsi, rbx
sub rsi, rdi
sar rsi, 1
test r15d, r15d
je 0x14004e51e
mov rcx, qword [rbp + 0xcb0]
mov r9d, r12d
mov r8, rsi
mov rdx, rdi
call fcn.140054a40
mov r14, rax
test rax, rax
je 0x14004e615
mov rcx, qword [0x14011f188]
cmp qword [rcx + 0x28], 0
je 0x14004e5d0
mov rcx, qword [rbp + 0xcb0]
mov r9d, r12d
mov eax, SafeArrayAllocDescriptor
mov dword [rbp + 0xcc0], 1
test r14, r14
mov r8, rsi
mov rdx, rdi
cmovne r9d, eax
lea rax, [rbp + 0xcc0]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0xcd0]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
call fcn.140054b10
mov r15, rax
test rax, rax
jne 0x14004e5b3
cmp dword [rbp + 0xcc0], eax
je 0x14004e615
test r14, r14
je 0x14004e5e5
mov r8d, dword [rbp + 0xcd0]
mov rdx, r14
mov rcx, qword [rbp + 8]
call fcn.140060e90
test eax, eax
je 0x14004e8c5
mov r15, r14
mov rsi, qword [rbp + 0xcb0]
movzx eax, byte [r15 + 0x22]
cmp eax, r12d
jne 0x14004e8e4
mov r15d, dword [rbp]
nop dword [rax]
movzx edx, word [rbx]
cmp dx, 0x20
je 0x14004e5df
cmp dx, 9
jne 0x14004e62b
add rbx, 2
jmp 0x14004e5d0
mov eax, dword [rbp + 0xcd0]
mov r8, rsi
mov rsi, qword [rbp + 0xcb0]
mov rdx, rdi
mov r9, qword [rbp + 8]
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.140055390
mov r15, rax
test rax, rax
jne 0x14004e5ba
xor eax, eax
lea rsp, [rbp + 0xc68]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
test dx, dx
je 0x14004e871
cmp dx, 0x2c
je 0x14004e8aa
cmp dx, 0x3a
jne 0x14004e651
cmp word [rbx + 2], 0x3d
jne 0x14004e651
add rbx, 4
jmp 0x14004e6b6
lea rcx, [0x1401053c0]
call fcn.1400bbe98
test rax, rax
je 0x14004e669
cmp word [rbx + 2], 0x3d
je 0x14004e6b6
movzx edx, word [rbx]
lea rcx, [0x1401053d8]
call fcn.1400bbe98
test rax, rax
je 0x14004e949
movzx ecx, word [rbx]
cmp word [rbx + 2], cx
jne 0x14004e949
movzx eax, word [rbx + 4]
cmp ax, 0x3d
je 0x14004e6b6
cmp cx, 0x3e
jne 0x14004e949
cmp ax, cx
jne 0x14004e949
cmp word [rbx + 6], 0x3d
jne 0x14004e949
xor r8d, r8d
nop dword [rax]
movsxd rax, r8d
movzx r9d, word [rbx + rax*2]
cmp r9d, 0x2c
je case.0x14004e6fb.0
lea edx, [r8 + 1]
cmp r9d, 0x7d
ja case.0x14004e6fb.1
lea r10, [0x140000000]
movzx eax, byte [r10 + r9 + 0x4fda8]
mov ecx, dword [r10 + rax*4 + 0x4fd84]
add rcx, r10
jmp rcx
movsxd rcx, r8d
inc rcx
movzx eax, word [rbx + rcx*2]
lea rcx, [rbx + rcx*2]
cmp ax, r9w
je 0x14004e739
test ax, ax
je 0x14004e739
cmp ax, 0x60
jne 0x14004e729
cmp word [rcx + 2], 0
je 0x14004e729
inc edx
add rcx, 2
movzx eax, word [rcx + 2]
add rcx, 2
inc edx
cmp ax, r9w
jne 0x14004e711
movsxd rax, edx
mov r8d, edx
cmp word [rbx + rax*2], 0
je 0x14004e7a5
inc r8d
jmp 0x14004e6c0
movsxd rax, r8d
cmp word [rbx + rax*2 + 2], 0x3f
jne case.0x14004e6fb.1
mov r8d, edx
inc r8d
jmp 0x14004e6c0
mov eax, 0x25
jmp 0x14004e77e
mov eax, 0x29
jmp 0x14004e77e
mov eax, 0x5d
jmp 0x14004e77e
mov eax, 0x7d
mov r8d, edx
xor r9d, r9d
movzx edx, ax
mov rcx, rbx
call fcn.14009f630
movsxd r8, eax
cmp word [rbx + r8*2], 0
je case.0x14004e6fb.0
inc r8d
jmp 0x14004e6c0
mov edx, r8d
movsxd rax, edx
lea rsi, [rbx + rax*2]
lea rbx, [rsi - 2]
cmp rbx, rdi
jbe 0x14004e7cd
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14004e7c4
cmp ax, 9
jne 0x14004e7cd
sub rbx, 2
cmp rbx, rdi
ja 0x14004e7b5
movzx r14d, word [rbx + 2]
xor ecx, ecx
mov word [rbx + 2], cx
cmp qword [rbp + 0x10], rcx
je 0x14004e80d
test r13b, r13b
jne 0x14004e80d
mov byte [rsp + 0x28], cl
xor r9d, r9d
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [rbp + 0xcb0]
mov dl, 3
call fcn.140050100
test eax, eax
je 0x14004e615
mov r13b, 1
xor ecx, ecx
mov r8d, ecx
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp + 0xcb0]
mov eax, 5
cmp r12d, 0x62
mov rdx, rdi
cmove r8d, eax
xor r9d, r9d
call fcn.14004e340
test eax, eax
je 0x14004e615
mov word [rbx + 2], r14w
movzx eax, word [rsi]
cmp ax, 0x2c
jne 0x14004e865
lea rdi, [rsi + 2]
nop
movzx eax, word [rdi]
cmp ax, 0x20
je 0x14004e85f
cmp ax, 9
jne 0x14004e868
add rdi, 2
jmp 0x14004e850
mov rdi, rsi
test ax, ax
jne 0x14004e4c3
test r13b, r13b
je 0x14004e992
mov rcx, qword [rbp + 0xcb0]
xor r8d, r8d
mov byte [rsp + 0x28], 0
xor r9d, r9d
mov dl, 4
mov qword [rsp + 0x20], r8
call fcn.140050100
test eax, eax
je 0x14004e615
mov eax, 1
jmp 0x14004e617
lea rdi, [rbx + 2]
nop
movzx eax, word [rdi]
cmp ax, 0x20
je 0x14004e8bf
cmp ax, 9
jne 0x14004e868
add rdi, 2
jmp 0x14004e8b0
mov rcx, qword [rbp + 0xcb0]
lea r8, [0x1400fbbd0]
lea rdx, [0x1400ffa10]
call fcn.140010a80
jmp 0x14004e617
test r12b, 2
je 0x14004e902
test r12b, 0x20
lea rbx, [0x1400ff388]
lea rax, [0x1400ff3b0]
cmove rbx, rax
jmp 0x14004e909
lea rbx, [0x1400ff3c0]
mov rcx, r15
call fcn.140010c30
mov r9, rbx
mov qword [rsp + 0x20], rax
lea r8, [0x1400ff8c0]
mov edx, 0x7f
lea rcx, [rbp + 0x360]
call fcn.14009cd90
mov r8, qword [r15 + 0x28]
lea rdx, [rbp + 0x360]
mov rcx, rsi
call fcn.140010a80
jmp 0x14004e617
mov rcx, qword [rbp + 0xcb0]
lea rdx, [0x1401053e0]
mov r8, rdi
call fcn.140010a80
jmp 0x14004e617
cmp r12d, 0x42
je 0x14004e99c
cmp byte [rbx + 0x90], 0
jne 0x14004e980
mov rax, qword [rbx + 8]
cmp qword [rbx + 0x88], rax
jne 0x14004e99c
mov rax, qword [0x14011f188]
mov rcx, qword [rax + 0x28]
mov byte [rcx + 0xbe], r12b
mov eax, 1
jmp 0x14004e617
mov r8, r14
lea rdx, [0x140105390]
mov rcx, rbx
call fcn.140010a80
jmp 0x14004e617
mov rdi, qword [rbp + 0xcc8]
mov r12, r14
nop dword [rax]
movzx eax, word [r12]
cmp eax, 0x7f
ja 0x14004e9dd
mov ecx, eax
call fcn.1400c5550
test eax, eax
jne 0x14004e9dd
cmp word [r12], 0x5f
jne 0x14004e9e3
add r12, 2
jmp 0x14004e9c0
mov rbx, r12
sub rbx, r14
sar rbx, 1
lea rax, [rbx - 1]
cmp rax, 0xfc
ja 0x14004ea68
mov r8, rbx
lea rcx, [rbp + 0x160]
mov rdx, r14
call fcn.1400cf354
xor eax, eax
mov r10, r12
mov word [rbp + rbx*2 + 0x160], ax
nop word [rax + rax]
movzx ecx, word [r10]
cmp cx, 0x20
je 0x14004ea30
cmp cx, 9
jne 0x14004ea36
add r10, 2
jmp 0x14004ea20
movzx eax, word [r12]
mov qword [rbp + 0xcd0], r10
cmp eax, 0x28
ja 0x14004ea7e
movabs rdx, 0x10100000201
bt rdx, rax
jae 0x14004ea7e
cmp cx, 0x3d
je 0x14004ea7e
cmp cx, 0x3a
je 0x14004ea7e
mov r15b, 1
jmp 0x14004ea81
xor edx, edx
mov qword [rbp + 0xcd0], r14
mov word [rbp + 0x160], dx
mov r12d, edx
mov r10, r14
xor r15b, r15b
movzx r9d, word [r14]
mov byte [rbp + 0xcc0], 0
cmp r9w, 0x22
je 0x14004ea9a
cmp r9w, 0x27
jne 0x14004eb06
mov r8d, 1
lea rax, [r14 + 2]
lea rcx, [rdi + 2]
nop dword [rax + rax]
movzx edx, word [rax]
cmp dx, r9w
jne 0x14004eb45
test rdi, rdi
je 0x14004eacc
cmp word [rcx], 0
jne 0x14004eb66
movsxd rax, r8d
cmp word [r14 + rax*2], 0
lea r10, [r14 + rax*2]
mov qword [rbp + 0xcd0], r10
je 0x14004eb06
movzx eax, word [r10 + 2]
add r10, 2
cmp ax, 0x20
je 0x14004eae2
cmp ax, 9
je 0x14004eae2
cmp ax, 0x2e
cmovne r10, r14
mov qword [rbp + 0xcd0], r10
movzx r9d, word [r10]
lea rbx, [r10 + 2]
movzx edx, word [rbx]
lea rdi, [0x140000000]
mov r14d, 8
lea eax, [r9 - 0x26]
cmp eax, 0x56
ja case.0x14004eb43.45
cdqe
lea r8d, [r14 - 6]
movzx eax, byte [rdi + rax + 0x4fe48]
mov ecx, dword [rdi + rax*4 + 0x4fe28]
add rcx, rdi
jmp rcx
test dx, dx
je 0x14004eacc
cmp dx, 0x60
jne 0x14004eb66
test rdi, rdi
jne 0x14004eb66
cmp word [rax + 2], di
je 0x14004eb66
inc r8d
add rcx, 2
add rax, 2
inc r8d
add rcx, 2
add rax, 2
jmp 0x14004eab0
cmp dx, 0x3d
jne case.0x14004eb43.45
cmp word [r10 + 4], 0
sete r11b
inc r11b
jmp 0x14004ebc6
test r12, r12
jne 0x14004eb9a
cmp dx, r9w
je case.0x14004eb43.44
cmp dx, 0x3d
jne case.0x14004eb43.45
mov r15, qword [rbp + 0xcb8]
movzx r11d, r8b
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
cmp dx, 0x3d
mov r11d, r8d
cmovne r11d, esi
mov dword [rbp], r11d
test r11b, r11b
je 0x14004ef00
cmp r11b, 1
jne 0x14004ed08
nop dword [rax]
movsxd rax, r8d
movzx r9d, word [r10 + rax*2]
cmp r9d, 0x2c
je case.0x14004ec13.0
lea edx, [r8 + 1]
cmp r9d, 0x7d
ja case.0x14004ec13.4
movzx eax, byte [rdi + r9 + 0x4fec4]
mov ecx, dword [rdi + rax*4 + 0x4fea0]
add rcx, rdi
jmp rcx
movsxd rcx, r8d
inc rcx
movzx eax, word [r10 + rcx*2]
lea rcx, [r10 + rcx*2]
cmp ax, r9w
je 0x14004ec58
nop word [rax + rax]
test ax, ax
je 0x14004ec58
cmp ax, 0x60
jne 0x14004ec48
cmp word [rcx + 2], 0
je 0x14004ec48
inc edx
add rcx, 2
movzx eax, word [rcx + 2]
add rcx, 2
inc edx
cmp ax, r9w
jne 0x14004ec30
movsxd rax, edx
mov r8d, edx
cmp word [r10 + rax*2], 0
je 0x14004eccd
inc r8d
jmp 0x14004ebe0
movsxd rax, r8d
cmp word [r10 + rax*2 + 2], 0x3f
jne case.0x14004ec13.4
mov r8d, edx
inc r8d
jmp 0x14004ebe0
mov eax, 0x25
jmp 0x14004ec9f
mov eax, 0x29
jmp 0x14004ec9f
mov eax, 0x5d
jmp 0x14004ec9f
mov eax, 0x7d
mov r8d, edx
xor r9d, r9d
movzx edx, ax
mov rcx, r10
call fcn.14009f630
mov r10, qword [rbp + 0xcd0]
movsxd r8, eax
cmp word [r10 + r8*2], 0
je case.0x14004ec13.0
inc r8d
jmp 0x14004ebe0
mov edx, r8d
mov r15, qword [rbp + 0xcb8]
xor r8d, r8d
movsxd rax, edx
mov r14d, 0x2c
mov rsi, r15
cmp word [r10 + rax*2], r8w
je 0x14004ecf6
mov r11b, 2
mov dword [rbp], r11d
jmp 0x14004f3b8
mov r11d, dword [rbp]
mov word [r10], r14w
mov word [rbx], SafeArrayAllocDescriptor
jmp 0x14004f3b8
mov r15, qword [rbp + 0xcb8]
xor r8d, r8d
mov r10, r15
mov qword [rbp + 0xcd0], r15
mov dword [rbp], r11d
lea eax, [r8 + 0x20]
jmp 0x14004f229
cmp dx, 0x3d
je case.0x14004eb43.44
cmp dx, 0x2f
jne case.0x14004eb43.45
cmp word [r10 + 4], 0x3d
jne case.0x14004eb43.45
mov r15, qword [rbp + 0xcb8]
movzx r11d, r8b
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
cmp dx, r9w
jne case.0x14004eb43.45
movzx eax, word [r10 + 4]
cmp ax, 0x3d
je case.0x14004eb43.44
cmp dx, 0x3e
jne case.0x14004eb43.45
cmp ax, dx
jne case.0x14004eb43.45
cmp word [r10 + 6], 0x3d
jne case.0x14004eb43.45
mov r15, qword [rbp + 0xcb8]
movzx r11d, r8b
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
cmp dx, 0x3d
jne 0x14004edd0
mov r15, qword [rbp + 0xcb8]
movzx r11d, r8b
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
mov rdi, rbx
movzx eax, word [rdi]
cmp eax, 0x7f
ja 0x14004edef
mov ecx, eax
call fcn.1400c5550
test eax, eax
jne 0x14004edef
movzx ecx, word [rdi]
cmp cx, 0x5f
jne 0x14004edf5
add rdi, 2
jmp 0x14004edd3
cmp cx, 0x28
je 0x14004f06c
cmp cx, 0x25
je 0x14004f06c
cmp rdi, rbx
je 0x14004eeee
cmp cx, 0x20
je 0x14004ee23
cmp cx, 9
je 0x14004ee23
xor sil, sil
jmp 0x14004ee26
mov sil, 1
mov rbx, rdi
nop dword [rax]
cmp cx, 0x20
je 0x14004ee3c
cmp cx, 9
jne 0x14004ee46
movzx ecx, word [rbx + 2]
add rbx, 2
jmp 0x14004ee30
test cx, cx
je 0x14004eed0
cmp cx, 0x5b
je 0x14004f06c
cmp word [rbx + 2], 0x3d
jne 0x14004ee78
movzx edx, cx
lea rcx, [0x140105420]
call fcn.1400bbe98
test rax, rax
jne 0x14004f06c
movzx ecx, word [rbx]
cmp word [rbx + 2], cx
jne 0x14004eed0
movzx edx, cx
lea rcx, [0x1401053d8]
call fcn.1400bbe98
test rax, rax
je 0x14004eea0
cmp word [rbx + 4], 0x3d
je 0x14004f06c
movzx ecx, word [rbx]
mov edx, 0xfffd
lea eax, [rcx - 0x2b]
test dx, ax
je 0x14004f06c
cmp cx, 0x3e
jne 0x14004eed0
cmp word [rbx + 4], cx
jne 0x14004eee4
cmp word [rbx + 6], 0x3d
mov ecx, 0x3e
je 0x14004f06c
cmp cx, 0x2e
jne 0x14004eedf
add rbx, 2
jmp 0x14004edd0
test cx, cx
je 0x14004eee9
test sil, sil
je 0x14004eeee
mov r12, rdi
jmp 0x14004ef09
mov r10, qword [rbp + 0xcd0]
lea rdi, [0x140000000]
mov r11d, dword [rbp]
test r15b, r15b
je 0x14004efb4
mov ebx, r14d
lea rdi, [0x140000000]
nop dword [rax]
nop word [rax + rax]
movsxd rax, ebx
lea rcx, [rbp + 0x160]
lea rdx, [rax + rax*4]
mov rdx, qword [rdi + rdx*2 + 0x11f1b0]
call fcn.1400c0814
test eax, eax
je 0x14004ef48
inc ebx
cmp ebx, 0x1b
jle 0x14004ef20
jmp 0x14004ef58
movzx r11d, bl
mov dword [rbp], r11d
test bl, bl
jne 0x14004f213
movzx ecx, word [r12]
cmp cx, 0x28
je 0x14004efbd
movzx eax, word [rbp + 0x160]
sub ax, 0x30
cmp ax, 9
jbe 0x14004efbd
mov r15, qword [rbp + 0xcb8]
test cx, cx
je 0x14004ef89
mov word [r12], 0x28
jmp 0x14004ef93
mov word [r15 + r13*2], 0x28
inc r13
mov word [r15 + r13*2], 0x29
mov r11b, 2
inc r13
mov dword [rbp], r11d
xor r8d, r8d
mov rsi, r15
mov word [r15 + r13*2], r8w
jmp 0x14004f3b2
test r11b, r11b
jne 0x14004f21a
mov rsi, qword [rbp + 0xcd0]
movzx eax, word [rsi]
cmp ax, 0x7b
jne 0x14004f082
movsxd rax, r14d
lea rcx, [rbp + 0x160]
lea rdx, [rax + rax*4]
mov rdx, qword [rdi + rdx*2 + 0x11f1b0]
call fcn.1400c0814
test eax, eax
je 0x14004effc
inc r14d
cmp r14d, 0x1b
jle 0x14004efd1
xor r14b, r14b
movzx eax, r14b
add eax, 0xfffffff7
cmp eax, 0x11
ja case.0x14004f01c.11
cdqe
movzx eax, byte [rdi + rax + 0x4ff50]
mov ecx, dword [rdi + rax*4 + 0x4ff44]
add rcx, rdi
jmp rcx
cmp word [rsi + 2], 0
jne case.0x14004f01c.11
movzx r11d, r14b
mov dword [rbp], r11d
test r14b, r14b
jne 0x14004f3a8
movzx edx, word [rsi]
lea rcx, [0x1401047d8]
call fcn.1400bbe98
test rax, rax
je 0x14004f140
movzx ecx, word [rsi]
mov edx, 0xfffd
lea eax, [rcx - 0x2b]
test dx, ax
jne 0x14004f106
cmp word [rsi + 2], cx
jne 0x14004f106
mov r15, qword [rbp + 0xcb8]
mov r11b, 2
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
cmp ax, 0x3a
jne case.0x14004f01c.11
lea rdx, [0x140101a50]
lea rcx, [rbp + 0x160]
call fcn.1400c0814
test eax, eax
jne case.0x14004f01c.11
mov rdi, qword [rbp + 0xcb0]
xor ebx, ebx
mov byte [rsp + 0x28], al
mov rcx, rdi
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
mov dl, reloc.OLEAUT32.dll_DispGetParam
call fcn.140050100
test eax, eax
je 0x14004e615
lea rdx, [rsi + 2]
nop dword [rax]
movzx eax, word [rdx]
cmp ax, 0x20
je 0x14004f0df
cmp ax, 9
jne 0x14004f0e5
add rdx, 2
jmp 0x14004f0d0
test ax, ax
je 0x14004e992
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
mov rcx, rdi
call fcn.14004e340
jmp 0x14004e617
mov edx, 0x3f
mov rcx, rsi
call fcn.1400bbe98
test rax, rax
je 0x14004f140
mov edx, 0x3a
mov rcx, rax
call fcn.1400bbe98
test rax, rax
je 0x14004f140
mov r15, qword [rbp + 0xcb8]
mov r11b, 2
mov dword [rbp], r11d
mov rsi, r15
jmp 0x14004f3af
test r12, r12
je 0x14004f15e
movzx eax, word [r12]
cmp ax, 0x28
je 0x14004f1fd
cmp ax, 0x5b
je 0x14004f1fd
movzx eax, word [rsi]
mov r15, qword [rbp + 0xcb8]
cmp ax, 0x25
je 0x14004f204
cmp word [r15], 0x28
je 0x14004f204
cmp ax, 0x3d
jne 0x14004f1a4
cmp word [rsi + 2], ax
je 0x14004f1c5
mov rcx, qword [rbp + 0xcb0]
lea rdx, [0x140105440]
mov r8, r15
call fcn.140010a80
jmp 0x14004e617
cmp ax, 0x2c
jne 0x14004f1c5
mov rcx, qword [rbp + 0xcb0]
lea rdx, [0x140105490]
mov r8, r15
call fcn.140010a80
jmp 0x14004e617
lea rdx, [0x1401048b0]
mov rcx, r15
call fcn.1400bc860
test rax, rax
lea rcx, [0x1401013b8]
lea rdx, [0x140104d40]
mov r8, r15
cmovne rdx, rcx
mov rcx, qword [rbp + 0xcb0]
call fcn.140010a80
jmp 0x14004e617
mov r15, qword [rbp + 0xcb8]
mov r11b, 2
mov rsi, r15
mov dword [rbp], r11d
jmp 0x14004f3af
mov r10, qword [rbp + 0xcd0]
mov eax, SafeArrayAllocDescriptor
xor r8d, r8d
mov r15, qword [rbp + 0xcb8]
cmp r11b, 0xa
jne 0x14004f26b
mov rdi, r10
test r10, r10
je 0x14004f26b
movzx edx, word [r10]
test dx, dx
je 0x14004f26b
lea rcx, [0x140105528]
cmp dx, ax
je 0x14004f277
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14004f247
movzx edx, word [rdi + 2]
add rdi, 2
mov eax, SafeArrayAllocDescriptor
test dx, dx
jne 0x14004f240
mov rsi, qword [rbp + 0xcd0]
jmp 0x14004f3af
cmp rdi, r10
jbe 0x14004f26b
movzx r14d, word [rdi]
cmp r14d, 0x2c
ja 0x14004f26b
movabs rcx, 0x100100000200
bt rcx, r14
jae 0x14004f26b
mov rsi, rdi
movzx ebx, r14w
nop dword [rax]
movzx r15d, r11b
cmp bx, 0x20
je 0x14004f2b0
cmp bx, 9
jne 0x14004f2ba
movzx ebx, word [rsi + 2]
add rsi, 2
jmp 0x14004f2a0
mov rdx, r10
mov word [rdi], r8w
lea rcx, [0x140105560]
call fcn.1400c0814
test eax, eax
jne 0x14004f2de
mov r11b, reloc.WSOCK32.dll_inet_ntoa
mov word [rdi], r14w
mov dword [rbp], r11d
jmp 0x14004f358
mov rdx, qword [rbp + 0xcd0]
lea rcx, [0x140105570]
call fcn.1400c0814
test eax, eax
jne 0x14004f302
mov r11b, reloc.WSOCK32.dll_ioctlsocket
mov word [rdi], r14w
mov dword [rbp], r11d
jmp 0x14004f358
mov rdx, qword [rbp + 0xcd0]
lea rcx, [0x140105578]
call fcn.1400c0814
test eax, eax
jne 0x14004f326
mov r11b, ntohs
mov word [rdi], r14w
mov dword [rbp], r11d
jmp 0x14004f358
mov rdx, qword [rbp + 0xcd0]
lea rcx, [0x140105588]
call fcn.1400c0814
mov word [rdi], r14w
test eax, eax
jne 0x14004f34a
mov r11b, recv
mov dword [rbp], r11d
jmp 0x14004f358
movzx r11d, r15b
mov dword [rbp], r11d
cmp r15b, 0xa
je 0x14004f374
cmp bx, 0x2c
jne 0x14004f3a8
movzx eax, word [rsi + 2]
add rsi, 2
cmp ax, 0x20
je 0x14004f35e
cmp ax, 9
je 0x14004f35e
jmp 0x14004f3a8
movzx r11d, r15b
mov dword [rbp], r11d
cmp bx, 0x2c
jne 0x14004f3a1
mov r8, qword [rbp + 0xcb8]
lea rdx, [0x140105598]
mov rcx, qword [rbp + 0xcb0]
call fcn.140010a80
jmp 0x14004e617
mov rsi, qword [rbp + 0xcd0]
mov r15, qword [rbp + 0xcb8]
xor r8d, r8d
mov r14d, 0x2c
xor edi, edi
movzx eax, r11b
add eax, 0xfffffff7
mov qword [rbp + 8], r8
lea rdx, [0x140000000]
movzx ebx, dil
cmp eax, 0x12
ja case.0x14004f3e5.10
cdqe
mov ecx, dword [rdx + rax*4 + 0x4ff64]
add rcx, rdx
jmp rcx
mov r12, rsi
test r12, r12
je 0x14004f47f
cmp word [r12], 0x28
jne 0x14004f47f
lea rax, [r13 - 1]
movzx ecx, word [r15 + rax*2]
lea rax, [r15 + rax*2]
cmp cx, 0x7b
jne 0x14004f44b
cmp r11b, 0xf
je 0x14004f41e
cmp r11b, 0x17
jne 0x14004f44b
add rax, 0xfffffffffffffffe
mov byte [rbp + 0xcc0], 1
cmp rax, r12
jbe 0x14004f448
nop
movzx ecx, word [rax]
cmp cx, 0x20
je 0x14004f43f
cmp cx, 9
jne 0x14004f448
sub rax, 2
cmp rax, r12
ja 0x14004f430
movzx ecx, word [rax]
cmp cx, 0x29
jne 0x14004f47f
add rsi, 2
add rax, 0xfffffffffffffffe
cmp rax, r12
jbe 0x14004f478
nop
movzx ecx, word [rax]
cmp cx, 0x20
je 0x14004f46f
cmp cx, 9
jne 0x14004f478
sub rax, 2
cmp rax, r12
ja 0x14004f460
mov word [rax + 2], r8w
mov bl, 1
cmp r11b, 0x17
jne case.0x14004f3e5.10
cmp word [rsi], 0x7b
jne case.0x14004f3e5.10
test r12, r12
je 0x14004f4bb
cmp word [r12], 0x28
jne 0x14004f4bb
mov rcx, qword [rbp + 0xcb0]
lea rdx, [0x1401055c0]
mov r8, r15
call fcn.140010a80
jmp 0x14004e617
movzx eax, word [rsi]
cmp ax, 0x7b
jne 0x14004f4df
mov byte [rbp + 0xcc0], 1
movzx eax, word [rsi + 2]
add rsi, 2
cmp ax, 0x20
je 0x14004f4cb
cmp ax, 9
je 0x14004f4cb
test ax, ax
je case.0x14004f3e5.10
mov qword [rbp + 8], rsi
sub rsi, 2
xor r12d, r12d
mov word [rsi], r12w
jmp 0x14004f688
xor r12d, r12d
mov r8d, r12d
nop dword [rax]
nop word [rax + rax]
movsxd rax, r8d
movsxd r9, r8d
movzx r10d, word [rsi + rax*2]
lea edx, [r9 + 1]
cmp r10d, 0x3a
jne 0x14004f52e
cmp word [rsi + r9*2 + 2], 0x3d
jne case.0x14004f553.0
cmp r10d, 0x7d
ja case.0x14004f553.4
lea r11, [0x140000000]
movzx eax, byte [r11 + r10 + 0x4ffd4]
mov ecx, dword [r11 + rax*4 + 0x4ffb0]
add rcx, r11
jmp rcx
lea rcx, [r9 + 1]
movzx eax, word [rsi + rcx*2]
lea rcx, [rsi + rcx*2]
cmp ax, r10w
je 0x14004f58e
test ax, ax
je 0x14004f58e
cmp ax, 0x60
jne 0x14004f57e
cmp word [rcx + 2], di
je 0x14004f57e
inc edx
add rcx, 2
movzx eax, word [rcx + 2]
add rcx, 2
inc edx
cmp ax, r10w
jne 0x14004f567
movsxd rax, edx
mov r8d, edx
cmp word [rsi + rax*2], di
jne case.0x14004f553.4
movsxd rax, r8d
cmp word [rsi + rax*2], di
lea rdx, [rsi + rax*2]
jne 0x14004f612
mov rcx, qword [rbp + 0xcb0]
lea rdx, [0x1401055e0]
mov r8, r15
call fcn.140010a80
jmp 0x14004e617
cmp word [rsi + r9*2 + 2], 0x3f
mov r8d, edx
je case.0x14004f553.4
mov edx, 0x3a
jmp 0x14004f5f5
mov eax, 0x25
jmp 0x14004f5ef
mov eax, 0x29
jmp 0x14004f5ef
mov eax, 0x5d
jmp 0x14004f5ef
mov eax, 0x7d
mov r8d, edx
movzx edx, ax
xor r9d, r9d
mov rcx, rsi
call fcn.14009f630
movsxd r8, eax
cmp word [rsi + r8*2], di
je case.0x14004f553.0
inc r8d
jmp 0x14004f510
mov word [rdx], r12w
cmp word [rsi], di
je 0x14004f657
mov rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], di
jne 0x14004f622
dec rax
lea rax, [rsi + rax*2]
movzx ecx, word [rax]
cmp cx, 0x20
je 0x14004f641
cmp cx, 9
jne 0x14004f64c
cmp rax, rsi
je 0x14004f653
sub rax, 2
jmp 0x14004f632
mov word [rax + 2], r12w
jmp 0x14004f657
mov word [rax], r12w
movzx eax, word [rdx + 2]
add rdx, 2
cmp ax, 0x20
je 0x14004f657
cmp ax, 9
je 0x14004f657
mov r11d, dword [rbp]
mov qword [rbp + 8], rdx
lea rdx, [0x140000000]
test ax, ax
jne 0x14004f688
mov qword [rbp + 8], r12
jmp 0x14004f688
xor r12d, r12d
movzx eax, r11b
lea rcx, [rax + rax*4]
lea r9, [rcx*2 + 0x11f1b0]
mov rcx, qword [rbp + 0xcc8]
add r9, rdx
mov qword [rbp + 0x10], r9
test rcx, rcx
je 0x14004f6ba
mov rax, rsi
sub rax, r15
sar rax, 1
lea rdi, [rcx + rax*2]
jmp 0x14004f703
lea r8, [r13*2]
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x14004f6d5
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1400d9fd0
sub rsp, rax
xor edx, edx
lea rdi, [rsp + 0x40]
mov rcx, rdi
call fcn.1400bcc50
mov rdx, rdi
mov rcx, rsi
call fcn.14009f4b0
mov r9, qword [rbp + 0x10]
mov r11d, dword [rbp]
lea eax, [r11 - 0x12]
movzx r10d, bl
cmp al, 2
mov eax, 1
cmova r10d, eax
mov dword [rbp + 0xcd0], r10d
cmp r11b, 0xf
jne 0x14004f7fe
movzx ecx, word [rsi]
mov rbx, rsi
nop dword [rax]
lea eax, [rcx - 0x41]
movzx edx, cx
cmp ax, 0x19
mov eax, edx
ja 0x14004f741
or eax, 0x20
cmp ax, 0x69
jne 0x14004f773
movzx eax, word [rbx + 2]
mov r8d, eax
sub ax, 0x41
cmp ax, 0x19
ja 0x14004f75c
or r8d, 0x20
cmp r8w, 0x6e
jne 0x14004f773
movzx eax, word [rbx + 4]
cmp ax, 0x20
je 0x14004f7d8
cmp ax, 9
je 0x14004f7d8
cmp cx, 0x7f
ja 0x14004f797
mov ecx, edx
call fcn.1400c5600
test eax, eax
jne 0x14004f797
movzx eax, word [rbx]
cmp ax, 0x5f
je 0x14004f797
cmp ax, 0x2c
jne 0x14004f4a0
movzx eax, word [rbx]
cmp eax, 0x7f
ja 0x14004f7b3
mov ecx, eax
call fcn.1400c5550
test eax, eax
jne 0x14004f7b3
movzx eax, word [rbx]
cmp ax, 0x5f
jne 0x14004f7b9
add rbx, 2
jmp 0x14004f797
cmp ax, 0x2c
jne 0x14004f7c3
add rbx, 2
movzx ecx, word [rbx]
cmp cx, 0x20
je 0x14004f7bf
cmp cx, 9
jne 0x14004f730
jmp 0x14004f7bf
mov r9, qword [rbp + 0x10]
mov eax, SafeArrayAllocDescriptor
mov r10d, dword [rbp + 0xcd0]
cmp rbx, rsi
mov r11d, dword [rbp]
cmove r14w, ax
mov word [rbx + 2], ax
mov word [rbx], r14w
jmp 0x14004f811
cmp r11b, 0x17
movzx r10d, r10b
cmove r10d, r12d
mov dword [rbp + 0xcd0], r10d
cmp word [rsi], 0
mov edx, r12d
movsx r13, byte [r9 + 9]
mov r14d, r12d
je 0x14004fabb
lea eax, [r13 - 1]
xor r11d, r11d
movsxd r12, eax
mov ebx, r11d
cmp rbx, r13
jge 0x14004fab0
movsxd rax, edx
lea rcx, [rsi + rax*2]
mov qword [rbp + rbx*8 + 0x20], rcx
lea r8, [rdi + rax*2]
mov qword [rbp + rbx*8 + 0xc0], r8
test r10b, r10b
je 0x14004f9f0
mov r8d, edx
movsxd rax, r8d
movzx r9d, word [rsi + rax*2]
cmp r9d, 0x2c
je case.0x14004f89b.0
lea edx, [r8 + 1]
cmp r9d, 0x7d
ja case.0x14004f89b.4
lea r10, [0x140000000]
movzx eax, byte [r10 + r9 + 0x50078]
mov ecx, dword [r10 + rax*4 + 0x50054]
add rcx, r10
jmp rcx
movsxd rax, r8d
lea rcx, [rax + 1]
lea r8, [rax + 1]
lea rcx, [rsi + rcx*2]
lea r8, [rdi + r8*2]
movzx eax, word [rcx]
cmp ax, r9w
jne 0x14004f8db
test rdi, rdi
je 0x14004f8c5
cmp word [r8], 0
jne 0x14004f8fb
movsxd rax, edx
cmp word [rsi + rax*2], 0
je 0x14004f95e
mov r8d, edx
inc r8d
jmp 0x14004f860
test ax, ax
je 0x14004f8c5
cmp ax, 0x60
jne 0x14004f8fb
test rdi, rdi
jne 0x14004f8fb
cmp word [rcx + 2], di
je 0x14004f8fb
inc edx
add r8, 2
add rcx, 2
inc edx
add r8, 2
add rcx, 2
jmp 0x14004f8b0
movsxd rax, r8d
cmp word [rsi + rax*2 + 2], 0x3f
jne case.0x14004f89b.4
mov r8d, edx
inc r8d
jmp 0x14004f860
mov eax, 0x25
jmp 0x14004f937
mov eax, 0x29
jmp 0x14004f937
mov eax, 0x5d
jmp 0x14004f937
mov eax, 0x7d
mov r8d, edx
mov r9, rdi
movzx edx, ax
mov rcx, rsi
call fcn.14009f630
movsxd r8, eax
cmp word [rsi + r8*2], 0
je case.0x14004f89b.0
inc r8d
jmp 0x14004f860
mov edx, r8d
xor r11d, r11d
movsxd rax, edx
cmp word [rsi + rax*2], 0
je 0x14004fa91
cmp rbx, r12
je 0x14004faad
mov word [rsi + rax*2], r11w
mov r9, qword [rbp + rbx*8 + 0x20]
mov r8, qword [rbp + rbx*8 + 0xc0]
cmp word [r9], 0
je 0x14004fa63
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [r9 + rax*2], 0
jne 0x14004f9a0
dec rax
mov r10, r9
sub r10, r8
lea rcx, [r8 + rax*2]
nop dword [rax + rax]
movzx r8d, word [r10 + rcx]
cmp r8w, 0x20
je 0x14004f9d7
cmp r8w, 9
jne 0x14004fa5d
cmp word [rcx], 0
jne 0x14004fa5d
test rax, rax
je 0x14004fa49
dec rax
sub rcx, 2
jmp 0x14004f9c0
movzx eax, word [rcx]
cmp ax, 0x2c
jne 0x14004fa19
test rdi, rdi
je 0x14004f961
cmp word [r8], 0
je 0x14004f961
inc edx
add r8, 2
add rcx, 2
jmp 0x14004f9f0
test ax, ax
je 0x14004f961
cmp ax, 0x60
jne 0x14004fa3d
test rdi, rdi
jne 0x14004fa3d
cmp word [rcx + 2], di
je 0x14004fa3d
inc edx
add r8, 2
add rcx, 2
inc edx
add r8, 2
add rcx, 2
jmp 0x14004f9f0
cmp r8w, 0x20
je 0x14004fa57
cmp r8w, 9
jne 0x14004fa63
mov word [r9], r11w
jmp 0x14004fa63
mov word [r9 + rax*2 + 2], r11w
inc edx
mov r8, rsi
movsxd rax, edx
sub r8, rdi
lea rcx, [rdi + rax*2]
movzx eax, word [r8 + rcx]
cmp ax, 0x20
je 0x14004fa83
cmp ax, 9
jne 0x14004fa91
cmp word [rcx], 0
jne 0x14004fa91
inc edx
add rcx, 2
jmp 0x14004fa72
movsxd rax, edx
inc r14d
inc rbx
cmp word [rsi + rax*2], 0
je 0x14004fab0
mov r10d, dword [rbp + 0xcd0]
jmp 0x14004f833
inc r14d
mov r9, qword [rbp + 0x10]
xor r12d, r12d
mov r11d, dword [rbp]
movsx r10d, byte [r9 + 8]
mov ecx, r10d
cmp r14d, r10d
jge 0x14004fb21
cmp r10b, 1
lea rax, reloc.WSOCK32.dll_WSAStartup
lea r8, [0x1400fbbd0]
cmovg r8, rax
mov qword [rsp + 0x28], r8
lea r8, [0x140105600]
mov dword [rsp + 0x20], ecx
mov r9, qword [r9]
lea rcx, [rbp + 0x460]
mov edx, 0x400
call fcn.14009cd90
mov r8, qword [rbp + 0xcb8]
lea rdx, [rbp + 0x460]
mov rcx, qword [rbp + 0xcb0]
call fcn.140010a80
jmp 0x14004e617
movsxd rax, edx
cmp word [rsi + rax*2], 0
je 0x14004fb60
cmp r11b, 2
je 0x14004fb60
cmp r11b, 0x17
je 0x14004fb60
cmp r13d, 1
lea rax, reloc.WSOCK32.dll_WSAStartup
lea r8, [0x1400fbbd0]
cmovg r8, rax
mov qword [rsp + 0x28], r8
lea r8, [0x140105650]
mov dword [rsp + 0x20], r13d
jmp 0x14004faee
mov edx, r12d
cmp r11b, 0x1b
jne 0x14004fb6e
mov ecx, r14d
jmp 0x14004fb78
cmp r11b, 0x17
jne 0x14004fb78
lea ecx, [r14 - 1]
movsxd r8, ecx
test ecx, ecx
jle 0x14004fb9b
mov rcx, r12
mov rax, qword [rbp + rcx*8 + 0x20]
inc edx
cmp word [rax], 0
je 0x14004fc54
inc rcx
cmp rcx, r8
jl 0x14004fb82
test r14d, r14d
je 0x14004fc86
movzx ebx, byte [rbp + 0xcc0]
cmp r11b, 0x1a
ja 0x14004fcc0
mov ecx, 0x481fd00
bt ecx, r11d
jae 0x14004fcc0
test bl, bl
jne 0x14004fc8d
movsxd rax, r14d
mov r9, 0xffffffffffffffff
mov rcx, qword [rbp + rax*8 + 0x18]
mov rax, r9
nop
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x14004fbe0
lea rdx, [rax - 1]
lea rdx, [rcx + rdx*2]
cmp rdx, rcx
jb 0x14004fc8d
cmp word [rdx], 0x7b
jne 0x14004fc8d
mov word [rdx], r12w
cmp word [rcx], 0
mov byte [rbp + 0xcc0], 1
je 0x14004fd4a
nop dword [rax]
inc r9
cmp word [rcx + r9*2], 0
jne 0x14004fc20
lea rax, [r9 - 1]
lea rax, [rcx + rax*2]
movzx edx, word [rax]
cmp dx, 0x20
je 0x14004fc42
cmp dx, 9
jne 0x14004fc78
cmp rax, rcx
je 0x14004fd46
sub rax, 2
dec r9
jmp 0x14004fc33
mov r9, qword [r9]
lea r8, [0x1401056a0]
mov dword [rsp + 0x20], edx
lea rcx, [rbp + 0x460]
mov edx, 0x400
call fcn.14009cd90
jmp 0x14004fb02
mov word [rax + 2], r12w
test r9, r9
je 0x14004fd4a
movzx ebx, byte [rbp + 0xcc0]
cmp r11b, 0x1a
jne 0x14004fcc0
test r14d, r14d
je 0x14004fcc0
mov rax, qword [rbp + 0x20]
cmp word [rax], 0
jne 0x14004fcc0
mov rcx, qword [rbp + 0xcb0]
lea r8, [0x1400fbbd0]
lea rdx, [0x140105700]
call fcn.140010a80
mov r11d, dword [rbp]
mov eax, dword [rbp + 0xcd0]
lea r8, [rbp + 0x20]
mov byte [rsp + 0x28], al
mov r9d, r14d
mov r14, qword [rbp + 0xcb0]
lea rax, [rbp + 0xc0]
mov rcx, r14
mov qword [rsp + 0x20], rax
movzx edx, r11b
call fcn.140050100
test eax, eax
je 0x14004e615
test bl, bl
je 0x14004fd1e
mov byte [rsp + 0x28], 0
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r12
mov dl, 3
mov rcx, r14
call fcn.140050100
test eax, eax
je 0x14004e615
mov rax, qword [rbp + 8]
test rax, rax
je 0x14004e992
xor r9d, r9d
mov qword [rsp + 0x20], r12
xor r8d, r8d
mov rdx, rax
mov rcx, r14
call fcn.14004e340
jmp 0x14004e617
mov word [rax], r12w
cmp r11b, 0x1a
ja 0x14004fd63
mov ecx, 0x4800400
bt ecx, r11d
jae 0x14004fd63
dec r14d
jmp 0x14004fc86
mov r8, qword [rbp + 0xcb8]
lea rdx, [0x140104ff8]
mov rcx, qword [rbp + 0xcb0]
call fcn.140010a80
jmp 0x14004e617