Function at 0x14005b0c0
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
mov rdi, qword [rdx]
mov rbx, qword [r8]
mov r8d, dword [rcx]
xor r10d, r10d
movsx ebp, r8b
mov r11d, r8d
mov dword [rax - 0xf4], r10d
mov dword [rax - 0x104], r10d
mov dword [rax - 0xf8], r10d
and ebp, 1
shr r11d, 0xb
mov eax, r8d
shr eax, 9
shl ebp, 8
and r11d, 1
and eax, 1
mov rdx, rdi
mov r15, r9
mov dword [rsp + 0x128], eax
xor eax, 1
mov dword [rsp + 0x110], r10d
mov dword [rsp + 0x124], eax
lea eax, [r10 - 2]
mov r9d, r10d
mov dword [rsp + 0x78], r10d
mov dword [rsp + 0x118], r10d
mov r12, r10
mov qword [rsp + 0x90], r10
mov r14, r10
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0x108], r10
mov r10, qword [rsp + 0x200]
mov dword [rsp + 0xd0], ebp
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x8c], eax
mov r13d, eax
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x80], r8d
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x140], rdi
mov dword [rsp + 0x7c], r11d
xor ebp, ebp
mov r11, qword [rsp + 0x1f8]
mov qword [rsp + 0x70], rbx
movzx esi, byte [rbx]
mov rax, qword [r11 + 0x20]
mov ecx, 0x7fffffeb
add rax, 0x1000
cmp r10, rbp
je 0x14005b294
cmp rdi, rax
ja 0x14005e8cb
mov rbp, qword [rsp + 0x130]
cmp rdi, rdx
mov eax, ecx
cmovb rdi, rdx
mov edx, dword [r10]
sub eax, edx
movsxd rcx, eax
mov rax, rdi
sub rax, rbp
cmp rcx, rax
jl 0x14005e6cf
sub edx, ebp
xor ebp, ebp
add edx, edi
mov dword [r10], edx
cmp r12, rbp
je 0x14005b28a
mov rbp, qword [rsp + 0x140]
cmp r12, rbp
jbe 0x14005b27e
mov r8, rdi
mov rdx, r12
mov rcx, rbp
sub r8, r12
call fcn.140016710
mov rbx, qword [rsp + 0x70]
mov r10, qword [rsp + 0x200]
mov r8d, dword [rsp + 0x80]
mov r9d, dword [rsp + 0x78]
mov r11, rbp
sub r11, r12
mov qword [rsp + 0x90], rbp
mov r12, rbp
add rdi, r11
mov r11, qword [rsp + 0x1f8]
xor ebp, ebp
mov qword [rsp + 0x130], rdi
jmp 0x14005b29e
mov rdi, qword [rsp + 0x140]
jmp 0x14005b280
cmp qword [r11 + 0x48], rax
ja 0x14005e8cb
cmp r9d, ebp
je 0x14005b346
cmp esi, ebp
je 0x14005b346
cmp esi, 0x5c
jne 0x14005b2c9
cmp byte [rbx + 1], 0x45
jne 0x14005b2c9
mov r9d, ebp
mov dword [rsp + 0x78], ebp
inc rbx
jmp 0x14005b747
cmp r14, rbp
je 0x14005b302
cmp r10, rbp
jne 0x14005b2fa
movzx eax, byte [r14 + 3]
movzx ecx, byte [r14 + 2]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [r11 + 0x30]
mov eax, ebx
mov byte [r14 + 5], bl
sar eax, 8
mov byte [r14 + 4], al
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rbp
bt r8d, 0xe
jae 0x14005cd85
mov byte [rdi], 0x53
mov byte [rdi + 1], 0xff
mov eax, ebx
sub eax, dword [r11 + 0x30]
mov qword [rsp + 0xa0], rdi
sar rax, 8
mov byte [rdi + 2], al
sub bl, byte [r11 + 0x30]
mov byte [rdi + 4], bpl
mov byte [rdi + 5], bpl
mov byte [rdi + 3], bl
mov rbx, qword [rsp + 0x70]
add rdi, 6
jmp 0x14005cd85
cmp esi, 0x2a
je 0x14005b3d2
cmp esi, 0x2b
je 0x14005b3d2
cmp esi, 0x3f
je 0x14005b3d2
cmp esi, 0x7b
jne 0x14005b378
lea rcx, [rbx + 1]
call fcn.14003c710
mov r11, qword [rsp + 0x1f8]
mov r9d, dword [rsp + 0x78]
cmp eax, ebp
jne 0x14005b3d2
xor r10d, r10d
cmp r14, r10
je 0x14005b3da
mov ecx, dword [rsp + 0x110]
mov eax, ecx
dec ecx
cmp eax, r10d
mov dword [rsp + 0x110], ecx
jg 0x14005b3da
cmp qword [rsp + 0x200], r10
jne 0x14005b3c8
movzx eax, byte [r14 + 3]
movzx ecx, byte [r14 + 2]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [r11 + 0x30]
mov eax, ebx
mov byte [r14 + 5], bl
sar eax, 8
mov byte [r14 + 4], al
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0xa0], r10
jmp 0x14005b3da
mov ebp, 1
xor r10d, r10d
mov r8d, dword [rsp + 0x80]
mov eax, 8
mov r14d, r8d
and r14d, eax
mov dword [rsp + 0xc8], r14d
je 0x14005b482
mov rax, qword [r11 + 0x18]
test byte [rsi + rax], 1
jne 0x14005b735
cmp esi, 0x23
jne 0x14005b482
jmp 0x14005b5a0
mov edx, dword [r11 + 0x84]
cmp edx, r10d
je 0x14005b568
mov r8, qword [r11 + 0x38]
cmp rbx, r8
jae 0x14005b5a0
mov eax, dword [rsp + 0x7c]
lea r9, [r11 + 0x88]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14003ba10
mov r11, qword [rsp + 0x1f8]
xor r10d, r10d
cmp eax, r10d
je 0x14005b5a0
mov eax, dword [r11 + 0x88]
dec eax
cdqe
add rbx, rax
mov qword [rsp + 0x70], rbx
cmp byte [rbx], r10b
jne 0x14005b728
mov r8d, dword [rsp + 0x80]
mov esi, r10d
bt r8d, 0xe
jae 0x14005b4c2
cmp ebp, r10d
jne 0x14005b4c2
mov byte [rdi], 0x53
mov byte [rdi + 1], 0xff
mov eax, ebx
sub eax, dword [r11 + 0x30]
mov qword [rsp + 0xa0], rdi
sar rax, 8
mov byte [rdi + 2], al
sub bl, byte [r11 + 0x30]
mov byte [rdi + 4], r10b
mov byte [rdi + 5], r10b
mov byte [rdi + 3], bl
mov rbx, qword [rsp + 0x70]
add rdi, 6
cmp esi, 0x3f
jg 0x14005c131
je 0x14005c116
xor ebp, ebp
mov ecx, esi
cmp esi, ebp
je 0x14005c167
sub ecx, 0x24
je 0x14005c103
sub ecx, 4
je 0x14005b5e7
sub ecx, 1
je 0x14005c167
sub ecx, 1
je 0x14005b5c9
sub ecx, 1
je 0x14005b5b9
cmp ecx, 3
jne 0x14005cd85
lea eax, [rbp - 1]
cmp r13d, 0xfffffffe
mov r12, rdi
cmove r13d, eax
mov eax, dword [rsp + 0x8c]
mov qword [rsp + 0x90], rdi
mov dword [rsp + 0xb8], eax
movsx eax, r8b
mov dword [rsp + 0x88], r13d
and eax, 4
mov dword [rsp + 0xb0], r13d
or eax, 0x30
shr eax, 2
mov byte [rdi], al
mov rbx, qword [rsp + 0x70]
inc rdi
mov r9d, dword [rsp + 0x78]
jmp 0x14005b737
movsxd rdx, dword [r11 + 0x88]
mov rcx, qword [r11 + 0x38]
sub rcx, rdx
mov rax, rdx
cmp rbx, rcx
ja 0x14005b5a0
cmp r8b, byte [r11 + 0x8c]
jne 0x14005b5a0
cmp edx, 1
je 0x14005b45b
mov al, byte [r11 + 0x8d]
cmp byte [rbx + 1], al
je 0x14005b45b
inc rbx
mov qword [rsp + 0x70], rbx
mov r8b, byte [rbx]
cmp r8b, r10b
jne 0x14005b413
jmp 0x14005b477
mov r13d, 1
mov dword [rsp + 0xc4], r13d
jmp 0x14005b5d3
mov r13d, ebp
mov dword [rsp + 0xc4], ebp
or r10d, 0xffffffff
mov esi, r10d
mov dword [rsp + 0xb4], r10d
jmp 0x14005c22d
mov rsi, qword [r11 + 0x48]
inc rbx
mov eax, 0x5f
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x2a
mov r10d, r8d
mov qword [rsp + 0x108], rsi
mov dword [rsp + 0x98], r8d
mov r12d, ebp
mov dword [rsp + 0x84], eax
mov r9d, ebp
mov dword [rsp + 0xbc], ebp
jne 0x14005b75f
mov rdx, qword [r11 + 0x18]
lea rcx, [rbx + 1]
movzx eax, byte [rcx]
test byte [rax + rdx], 2
je 0x14005b75f
xor r14d, r14d
lea rbp, str.ACCEPT
mov rbx, rcx
mov qword [rsp + 0x90], r14
mov r13, rcx
inc rbx
mov qword [rsp + 0x70], rbx
movzx eax, byte [rbx]
test byte [rax + rdx], 2
jne 0x14005b655
cmp byte [rbx], 0x3a
je 0x14005e6e7
cmp byte [rbx], 0x29
jne 0x14005e6db
sub ebx, ecx
mov rsi, r14
lea rdx, sym.imp.gdi32.dll_SetDIBitsToDevice
cmp ebx, dword [rdx + rsi*8 + 0x9d618]
jne 0x14005b6a7
movsxd r8, ebx
mov rdx, rbp
mov rcx, r13
call fcn.14001d4a0
lea rdx, sym.imp.gdi32.dll_SetDIBitsToDevice
cmp eax, r14d
je 0x14005b6c3
mov eax, dword [rdx + rsi*8 + 0x9d618]
inc rsi
inc r12d
inc eax
cdqe
add rbp, rax
cmp rsi, 7
jl 0x14005b684
jmp 0x14005b709
cmp dword [rdx + rsi*8 + 0x9d61c], 0x70
jne 0x14005b6fd
mov rax, qword [rsp + 0x1f8]
mov rcx, qword [rax + 0x40]
mov dword [rax + 0x7c], 1
jmp 0x14005b6f8
mov byte [rdi], WSAStartup
mov al, byte [rcx + 9]
add rdi, 3
mov byte [rdi - 2], al
mov al, byte [rcx + 8]
mov byte [rdi - 1], al
mov rcx, qword [rcx]
cmp rcx, r14
jne 0x14005b6e2
mov al, byte [rdx + rsi*8 + 0x9d61c]
mov byte [rdi], al
inc rdi
cmp r12d, 7
mov rbx, qword [rsp + 0x70]
jge 0x14005e6db
mov r12, qword [rsp + 0x90]
mov r13d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x80]
mov r9d, dword [rsp + 0x78]
xor ebp, ebp
mov r14, qword [rsp + 0xa0]
mov r10, qword [rsp + 0x200]
mov r15, qword [rsp + 0x1d8]
mov rdx, qword [rsp + 0x130]
inc rbx
jmp 0x14005b1c3
cmp byte [rbx], 0x3f
jne 0x14005c0eb
inc rbx
mov qword [rsp + 0x70], rbx
movzx edx, byte [rbx]
cmp edx, 0x3a
jg 0x14005bd35
je 0x14005bd79
cmp edx, 0x21
je 0x14005bd0e
cmp edx, 0x23
je 0x14005bcd2
cmp edx, 0x26
je 0x14005bcc1
mov esi, reloc.OLEAUT32.dll_SafeArrayRedim
cmp edx, esi
je 0x14005becd
cmp edx, 0x28
je 0x14005b7d8
cmp edx, 0x2b
je 0x14005bd9a
cmp edx, 0x2d
je 0x14005bd9a
cmp edx, 0x2f
jle 0x14005d05a
cmp edx, 0x39
jle 0x14005bd9a
jmp 0x14005d05a
cmp byte [rbx + 1], 0x3f
mov eax, 0x60
mov dword [rsp + 0x84], eax
jne 0x14005b805
mov al, byte [rbx + 2]
cmp al, 0x3d
je 0x14005b988
cmp al, 0x21
je 0x14005b988
cmp al, 0x3c
je 0x14005b988
mov byte [rdi + 3], 0x64
mov rbx, qword [rsp + 0x70]
or r8d, 0xffffffff
lea rcx, [rbx + 1]
mov r12d, 3
mov r9d, r8d
mov al, byte [rcx]
mov dword [rsp + 0x90], r12d
cmp al, 0x52
jne 0x14005b849
lea rdx, [rbx + 2]
cmp byte [rdx], 0x26
jne 0x14005b849
mov qword [rsp + 0x70], rdx
mov byte [rdi + 3], 0x66
mov rbx, qword [rsp + 0x70]
mov r13d, r8d
jmp 0x14005b87b
cmp al, 0x3c
jne 0x14005b85a
mov r13d, 0x3e
mov qword [rsp + 0x70], rcx
jmp 0x14005b878
cmp al, sil
jne 0x14005b864
mov r13d, esi
jmp 0x14005b853
mov r13d, ebp
cmp al, 0x2d
je 0x14005b86f
cmp al, 0x2b
jne 0x14005b87b
mov qword [rsp + 0x70], rcx
movzx r9d, byte [rcx]
mov rbx, rcx
mov r8, qword [r11 + 0x18]
lea rcx, [rbx + 1]
movzx eax, byte [rcx]
test byte [rax + r8], 0x10
je 0x14005e75d
mov qword [rsp + 0x70], rcx
movzx edx, byte [rcx]
mov esi, ebp
test byte [rdx + r8], 0x10
mov rbx, rcx
mov r15, rcx
mov rax, rdx
je 0x14005b8f9
or r14d, 0xffffffff
lea r11, sym.imp.gdi32.dll_SetDIBitsToDevice
cmp esi, ebp
jl 0x14005b8d4
test byte [rax + r11 + 0x9e0e0], 4
je 0x14005b8d1
lea ecx, [rsi + rsi*4]
movzx eax, dl
lea esi, [rax + rcx*2 - 0x30]
jmp 0x14005b8d4
mov esi, r14d
inc rbx
mov qword [rsp + 0x70], rbx
movzx edx, byte [rbx]
mov rax, rdx
test byte [r8 + rdx], 0x10
jne 0x14005b8b6
mov r14d, dword [rsp + 0xc8]
mov r11, qword [rsp + 0x1f8]
mov ebp, ebx
xor ecx, ecx
sub ebp, r15d
cmp r13d, ecx
mov dword [rsp + 0xd4], ebp
jle 0x14005b920
movzx eax, byte [rbx]
inc rbx
mov qword [rsp + 0x70], rbx
cmp eax, r13d
jne 0x14005e747
mov al, byte [rbx]
inc rbx
mov qword [rsp + 0x70], rbx
cmp al, 0x29
jne 0x14005e747
cmp qword [rsp + 0x200], rcx
jne 0x14005b980
cmp r9d, ecx
jle 0x14005bb3c
cmp esi, ecx
jle 0x14005e706
cmp r9d, 0x2d
jne 0x14005b95e
mov eax, dword [r11 + 0x60]
sub eax, esi
lea esi, [rax + 1]
jmp 0x14005b962
add esi, dword [r11 + 0x60]
cmp esi, ecx
jle 0x14005e6f3
cmp esi, dword [r11 + 0x64]
jg 0x14005e6f3
mov eax, esi
mov byte [rdi + 5], sil
sar eax, 8
mov byte [rdi + 4], al
mov r15, qword [rsp + 0x1d8]
mov r9d, dword [rsp + 0xbc]
mov r13d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x80]
mov qword [rsp + 0x90], rdi
mov ebp, dword [rsp + 0x84]
mov rax, qword [rsp + 0x200]
xor r14d, r14d
neg rax
mov byte [rdi], bpl
mov esi, dword [r11 + 0x78]
sbb rcx, rcx
lea rax, [rsp + 0xc0]
mov qword [rsp + 0xa8], rdi
and rcx, rax
mov dword [rsp + 0xc0], r14d
cmp ebp, 0x5a
je 0x14005b9ef
mov eax, r14d
cmp ebp, 0x5b
jne 0x14005b9f4
mov eax, 1
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x1f0]
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x50], rcx
mov edx, r8d
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x114]
lea r8, [rsp + 0xa8]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], eax
lea r9, [rsp + 0x70]
and edx, 7
mov ecx, r10d
mov qword [rsp + 0x20], r15
call fcn.140063de0
cmp eax, r14d
je 0x14005e727
mov r10, qword [rsp + 0x200]
cmp ebp, 0x60
jne 0x14005baa9
cmp r10, r14
jne 0x14005baa9
mov rdx, rdi
mov r8d, r14d
movzx eax, byte [rdx + 1]
inc r8d
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rdx + 2]
or rcx, rax
add rdx, rcx
cmp byte [rdx], 0x55
jne 0x14005ba74
cmp byte [rdi + 3], 0x68
jne 0x14005d1a7
cmp r8d, 1
jg 0x14005e82e
mov ebp, 0x68
mov ecx, dword [rsp + 0x114]
mov eax, dword [rsp + 0x100]
or r11d, 0xffffffff
mov rbx, qword [rsp + 0x70]
cmp byte [rbx], 0x29
jne 0x14005e846
cmp r10, r14
je 0x14005d1d8
mov r8d, dword [rsp + 0xc0]
mov edx, dword [r10]
mov ecx, 0x7fffffeb
lea eax, [r8 - 6]
sub ecx, edx
cmp ecx, eax
jl 0x14005e6cf
xor ebp, ebp
lea eax, [rdx + r8 - 6]
mov dword [r10], eax
mov byte [rdi], 0x5e
mov byte [rdi + 1], bpl
mov byte [rdi + 2], 3
mov byte [rdi + 3], 0x55
mov byte [rdi + 4], bpl
mov byte [rdi + 5], 3
add rdi, 6
mov rbx, qword [rsp + 0x70]
mov r12, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x80]
mov r14, qword [rsp + 0xa0]
mov r9d, dword [rsp + 0x78]
jmp 0x14005b747
cmp dword [r11 + 0x58], ecx
mov rbx, qword [r11 + 0x50]
mov r12d, ecx
jle 0x14005bb92
movsxd r14, ebp
xor ebp, ebp
lea rdx, [rbx + 2]
mov r8, r14
mov rcx, r15
call fcn.14001d4a0
mov r11, qword [rsp + 0x1f8]
cmp eax, ebp
je 0x14005bb79
movsxd rax, dword [r11 + 0x5c]
inc r12d
add rbx, rax
cmp r12d, dword [r11 + 0x58]
jl 0x14005bb4e
mov ebp, dword [rsp + 0xd4]
mov r10d, dword [rsp + 0x98]
mov r14d, dword [rsp + 0xc8]
xor ecx, ecx
cmp r12d, dword [r11 + 0x58]
jge 0x14005bbbf
movzx eax, byte [rbx]
movzx ecx, byte [rbx + 1]
shl eax, 8
or ecx, eax
mov eax, ecx
mov byte [rdi + 5], cl
sar eax, 8
inc byte [rdi + 3]
mov r12d, dword [rsp + 0x90]
mov byte [rdi + 4], al
jmp 0x14005b980
cmp r14d, ecx
mov r9d, ecx
mov r8d, ebp
mov rdx, r15
mov rcx, r11
setne r9b
call fcn.14004c2c0
xor ecx, ecx
cmp eax, ecx
mov r11d, eax
jle 0x14005bc0a
sar eax, 8
inc byte [rdi + 3]
mov byte [rdi + 5], r11b
mov r12d, dword [rsp + 0x90]
mov byte [rdi + 4], al
mov r10d, dword [rsp + 0x98]
mov r11, qword [rsp + 0x1f8]
jmp 0x14005b980
cmp r13d, ecx
jne 0x14005e719
cmp byte [r15], 0x52
jne 0x14005bc67
mov edx, 1
cmp ebp, edx
jle 0x14005bc54
movsxd rax, edx
movzx r8d, byte [rax + r15]
lea rax, sym.imp.gdi32.dll_SetDIBitsToDevice
test byte [r8 + rax + 0x9e0e0], 4
je 0x14005e719
lea ecx, [rcx + rcx*4]
inc edx
cmp edx, ebp
lea ecx, [r8 + rcx*2 - 0x30]
jl 0x14005bc22
xor eax, eax
cmp ecx, eax
jne 0x14005bc59
mov ecx, 0xffff
mov eax, ecx
mov byte [rdi + 3], 0x66
mov byte [rdi + 5], cl
sar eax, 8
jmp 0x14005bbea
cmp ebp, 6
jne 0x14005bc91
lea rdx, str.DEFINE
mov r8d, ebp
mov rcx, r15
call fcn.14001d4a0
xor ecx, ecx
cmp eax, ecx
jne 0x14005bc91
mov byte [rdi + 3], 0x68
lea r12d, [rbp - 5]
jmp 0x14005bbf5
cmp esi, ecx
jle 0x14005e731
mov r11, qword [rsp + 0x1f8]
cmp esi, dword [r11 + 0x64]
jg 0x14005e731
mov r10d, dword [rsp + 0x98]
mov eax, esi
mov byte [rdi + 5], sil
sar eax, 8
jmp 0x14005bbaf
mov r8d, reloc.OLEAUT32.dll_SafeArrayCreateEx
mov r13d, 1
jmp 0x14005d342
inc rbx
mov qword [rsp + 0x70], rbx
mov al, byte [rbx]
cmp al, bpl
je 0x14005e76c
cmp al, 0x29
je 0x14005bcf8
inc rbx
mov qword [rsp + 0x70], rbx
mov al, byte [rbx]
cmp al, bpl
jne 0x14005bce5
cmp byte [rbx], bpl
je 0x14005e76c
mov r12, qword [rsp + 0x90]
jmp 0x14005b55e
inc rbx
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x29
jne 0x14005bd2b
mov byte [rdi], reloc.WSOCK32.dll_WSAGetLastError
mov qword [rsp + 0x90], rbp
jmp 0x14005b556
mov eax, 0x59
jmp 0x14005c0d7
mov ecx, edx
sub ecx, 0x3c
je 0x14005bea4
sub ecx, 1
je 0x14005be97
sub ecx, 1
je 0x14005be8d
sub ecx, 5
je 0x14005bdeb
sub ecx, 0xd
je 0x14005bdac
sub ecx, 2
je 0x14005bd92
cmp ecx, 0x2a
jne 0x14005d05a
mov dword [rsp + 0xbc], 1
mov eax, 0x5e
inc rbx
mov dword [rsp + 0x84], eax
mov qword [rsp + 0x70], rbx
jmp 0x14005b988
inc rbx
mov qword [rsp + 0x70], rbx
mov r8d, reloc.OLEAUT32.dll_SafeArrayCreateEx
lea r9, sym.imp.gdi32.dll_SetDIBitsToDevice
jmp 0x14005d005
inc rbx
mov qword [rsp + 0x70], rbx
mov dl, byte [rbx]
cmp dl, 0x3d
je 0x14005bddd
cmp dl, 0x3e
je 0x14005bdd5
cmp dl, 0x3c
je 0x14005bec8
mov dword [r15], reloc.OLEAUT32.dll_SafeArrayCreateEx
jmp 0x14005e8d2
mov r13d, 1
jmp 0x14005bde0
mov r13d, ebp
mov r8d, reloc.OLEAUT32.dll_SafeArrayCreateEx
jmp 0x14005d342
mov byte [rdi], 0x53
mov rbx, qword [rsp + 0x70]
mov r14, rdi
mov qword [rsp + 0xa0], rdi
mov dword [rsp + 0x110], 1
mov eax, ebp
lea r9, sym.imp.gdi32.dll_SetDIBitsToDevice
jmp 0x14005be1e
lea ecx, [rax + rax*4]
movzx eax, dl
lea eax, [rax + rcx*2 - 0x30]
inc rbx
mov qword [rsp + 0x70], rbx
movzx edx, byte [rbx]
test byte [rdx + r9 + 0x9e0e0], 4
jne 0x14005be14
cmp byte [rbx], 0x29
jne 0x14005e784
cmp eax, 0xff
jg 0x14005e778
mov r9d, dword [rsp + 0x78]
mov byte [rdi + 1], al
mov eax, dword [rsp + 0x70]
sub eax, dword [r11 + 0x30]
mov qword [rsp + 0x90], rbp
inc rax
sar rax, 8
mov byte [rdi + 2], al
mov al, byte [rsp + 0x70]
sub al, byte [r11 + 0x30]
mov byte [rdi + 4], bpl
mov byte [rdi + 5], bpl
inc al
add rdi, 6
mov byte [rdi - 3], al
mov rbx, qword [rsp + 0x70]
jmp 0x14005b73f
mov eax, 0x5d
jmp 0x14005bd7e
mov eax, 0x58
inc rbx
jmp 0x14005c0d2
mov al, byte [rbx + 1]
cmp al, 0x21
je 0x14005c0c9
cmp al, 0x3d
je 0x14005c0c2
movzx ecx, al
mov rax, qword [r11 + 0x18]
test byte [rcx + rax], 0x10
je 0x14005e7b5
mov esi, reloc.OLEAUT32.dll_SafeArrayRedim
mov rax, qword [r11 + 0x18]
cmp dl, 0x3c
mov r8d, esi
mov edx, 0x3e
cmove r8d, edx
inc rbx
mov qword [rsp + 0x70], rbx
movzx ecx, byte [rbx]
mov r14, rbx
test byte [rcx + rax], 0x10
je 0x14005bf08
mov rcx, rax
inc rbx
mov qword [rsp + 0x70], rbx
movzx eax, byte [rbx]
test byte [rax + rcx], 0x10
jne 0x14005bef7
mov ecx, ebx
sub ecx, r14d
cmp qword [rsp + 0x200], rbp
je 0x14005bf57
movzx eax, byte [rbx]
cmp eax, r8d
jne 0x14005e79d
cmp dword [r11 + 0x58], 0x2710
jge 0x14005e791
lea eax, [rcx + 3]
cmp eax, dword [r11 + 0x5c]
jle 0x14005c096
cmp ecx, 0x20
mov dword [r11 + 0x5c], eax
jle 0x14005c096
mov dword [r15], gethostbyname
jmp 0x14005e8d2
mov rsi, qword [r11 + 0x50]
xor eax, eax
movsxd r13, ecx
cmp dword [r11 + 0x58], eax
jle 0x14005c012
lea rdx, [rsi + 2]
mov r8, r13
mov rcx, r14
call fcn.140017440
xor ecx, ecx
cmp eax, ecx
jne 0x14005bfc0
cmp byte [rsi + r13 + 2], cl
jne 0x14005bfbb
movzx eax, byte [rsi]
movzx ecx, byte [rsi + 1]
mov r11, qword [rsp + 0x1f8]
shl eax, 8
or ecx, eax
mov eax, dword [r11 + 0x60]
inc eax
cmp ecx, eax
je 0x14005bfb3
bt dword [rsp + 0x80], 0x13
jae 0x14005e7a9
mov r12d, 1
jmp 0x14005bfca
or eax, 0xffffffff
cmp eax, ecx
jl 0x14005bfdb
mov r11, qword [rsp + 0x1f8]
movsxd rax, dword [r11 + 0x5c]
inc ebp
add rsi, rax
cmp ebp, dword [r11 + 0x58]
jl 0x14005bf6a
jmp 0x14005c006
mov rcx, qword [rsp + 0x1f8]
mov rdx, rsi
mov eax, dword [rcx + 0x58]
sub eax, ebp
imul eax, dword [rcx + 0x5c]
movsxd rcx, dword [rcx + 0x5c]
add rcx, rsi
movsxd r8, eax
call fcn.140016710
mov r11, qword [rsp + 0x1f8]
xor ebp, ebp
cmp r12d, ebp
jne 0x14005c059
mov rbx, qword [rsp + 0x70]
cmp dword [r11 + 0x58], ebp
mov rdx, qword [r11 + 0x50]
mov r8d, ebp
jle 0x14005c059
cmp rdx, rsi
je 0x14005c046
movzx eax, byte [rdx]
movzx ecx, byte [rdx + 1]
shl eax, 8
or ecx, eax
mov eax, dword [r11 + 0x60]
inc eax
cmp ecx, eax
jne 0x14005c049
mov dword [r15], 0x41
jmp 0x14005e8d2
dec r8d
movsxd rax, dword [r11 + 0x5c]
inc r8d
add rdx, rax
cmp r8d, dword [r11 + 0x58]
jl 0x14005c01f
mov eax, dword [r11 + 0x60]
lea rcx, [rsi + 2]
mov r8, r13
inc eax
mov rdx, r14
sar eax, 8
mov byte [rsi], al
mov al, byte [r11 + 0x60]
inc al
mov byte [rsi + 1], al
call fcn.140016710
mov r10d, dword [rsp + 0x98]
mov r11, qword [rsp + 0x1f8]
mov byte [r13 + rsi + 2], bpl
mov rbx, qword [rsp + 0x70]
inc dword [r11 + 0x58]
inc rbx
mov qword [rsp + 0x70], rbx
inc dword [r11 + 0x60]
mov eax, dword [r11 + 0x60]
mov r12d, 2
sar eax, 8
mov byte [rdi + 3], al
mov al, byte [r11 + 0x60]
mov byte [rdi + 4], al
jmp 0x14005b988
mov eax, 0x5a
jmp 0x14005c0ce
mov eax, 0x5b
add rbx, 2
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x84], eax
mov qword [rsp + 0x90], rbp
jmp 0x14005b9a8
bt r8d, 0xc
jae 0x14005c0a2
mov eax, 0x5e
mov dword [rsp + 0x84], eax
jmp 0x14005b988
mov r12, rbp
mov qword [rsp + 0x90], rbp
mov byte [rdi], 0x1b
jmp 0x14005b556
xor ebp, ebp
mov r13d, ebp
mov dword [rsp + 0xc4], ebp
lea esi, [rbp + 1]
mov dword [rsp + 0xb4], esi
jmp 0x14005c229
mov ecx, esi
sub ecx, 0x5b
je 0x14005d69c
sub ecx, 1
je 0x14005ce46
sub ecx, 1
je 0x14005cd79
sub ecx, 1
je 0x14005cd49
sub ecx, 0x1d
je 0x14005c1da
cmp ecx, 1
jne 0x14005cd85
xor ebp, ebp
mov rax, qword [rsp + 0x1e0]
mov ecx, dword [rsp + 0x8c]
mov r9, qword [rsp + 0x1d0]
mov r8, qword [rsp + 0x200]
mov dword [rax], r13d
mov rax, qword [rsp + 0x1e8]
mov dword [rax], ecx
mov rax, qword [rsp + 0x1c8]
mov qword [r9], rbx
mov qword [rax], rdi
cmp r8, rbp
je 0x14005e7cb
mov edx, dword [r8]
mov rbp, qword [rsp + 0x130]
mov eax, 0x7fffffeb
sub eax, edx
movsxd rcx, eax
mov rax, rdi
sub rax, rbp
cmp rcx, rax
jge 0x14005e7c4
mov dword [r15], reloc.WSOCK32.dll_sendto
jmp 0x14005e8da
cmp ebp, r10d
je 0x14005cd85
lea rcx, [rbx + 1]
lea r8, [rsp + 0xb4]
lea rdx, [rsp + 0xc4]
mov r9, r15
call fcn.14003c640
xor ebp, ebp
mov rbx, rax
mov qword [rsp + 0x70], rax
cmp dword [r15], ebp
jne 0x14005e8d2
mov r13d, dword [rsp + 0xc4]
mov esi, dword [rsp + 0xb4]
mov r8d, dword [rsp + 0x80]
or r10d, 0xffffffff
cmp r12, rbp
je 0x14005e807
cmp r13d, ebp
jne 0x14005c25d
mov r9d, dword [rsp + 0xb0]
mov r11d, dword [rsp + 0xb8]
mov dword [rsp + 0x88], r9d
mov dword [rsp + 0x8c], r11d
jmp 0x14005c26d
mov r9d, dword [rsp + 0x88]
mov r11d, dword [rsp + 0x8c]
mov eax, r13d
mov rdx, r12
mov dword [rsp + 0x84], ebp
sub eax, esi
mov qword [rsp + 0xa8], rdx
mov r14d, ebp
neg eax
mov dword [rsp + 0x98], ebp
sbb eax, eax
and eax, 0x200
mov dword [rsp + 0xd4], eax
lea rax, [rbx + 1]
cmp byte [rax], 0x2b
jne 0x14005c2b7
mov r14d, 1
mov dword [rsp + 0x98], r14d
jmp 0x14005c2c3
cmp byte [rax], 0x3f
jne 0x14005c2cd
mov ebp, dword [rsp + 0x124]
mov rbx, rax
mov qword [rsp + 0x70], rax
jmp 0x14005c2d4
mov ebp, dword [rsp + 0x128]
mov al, byte [r12]
cmp al, 0x1c
je 0x14005c994
cmp al, 0x1d
je 0x14005c994
cmp al, 0x1e
jne 0x14005c387
movzx r12d, byte [r12 + 1]
mov eax, reloc.WSOCK32.dll_listen
xor r9d, r9d
mov ecx, eax
mov dword [rsp + 0x84], eax
cmp r14d, r9d
jne 0x14005c35e
cmp esi, r9d
jge 0x14005c35e
mov rcx, qword [rsp + 0x1f8]
mov edx, r12d
mov qword [rsp + 0x30], rcx
lea ecx, [rax + 0x11]
mov dword [rsp + 0x28], r8d
mov r8d, dword [rsp + 0x7c]
lea rax, [rbx + 1]
mov qword [rsp + 0x20], rax
call fcn.14004b6b0
mov rbx, qword [rsp + 0x70]
xor r9d, r9d
cmp eax, r9d
je 0x14005c357
mov ebp, r9d
mov dword [rsp + 0x98], 1
mov ecx, dword [rsp + 0x84]
mov rdx, qword [rsp + 0x90]
cmp byte [rdx], 0x10
je 0x14005ca4b
cmp byte [rdx], 0xf
je 0x14005ca4b
or r8d, 0xffffffff
mov r15d, r8d
mov r14d, r8d
jmp 0x14005ca59
cmp al, 0x17
jae 0x14005c3bf
xor r9d, r9d
mov ecx, 0x1a
movzx r12d, al
mov dword [rsp + 0x84], ecx
cmp r14d, r9d
jne 0x14005c35e
cmp esi, r9d
jge 0x14005c35e
mov rcx, qword [rsp + 0x1f8]
xor edx, edx
mov qword [rsp + 0x30], rcx
mov ecx, r12d
jmp 0x14005c324
cmp al, 0x4e
je 0x14005c907
cmp al, 0x4f
je 0x14005c907
cmp al, 0x50
je 0x14005c907
cmp al, 0x51
je 0x14005c907
cmp al, 0x5e
je 0x14005c42b
cmp al, 0x5f
je 0x14005c42b
cmp al, 0x5d
je 0x14005c42b
cmp al, 0x60
je 0x14005c42b
cmp al, 0x6f
jne 0x14005e7d5
xor ebp, ebp
mov rcx, qword [rsp + 0x1f8]
mov eax, dword [rsp + 0xd4]
mov r13d, dword [rsp + 0x88]
or dword [rcx + 0x78], eax
mov r12, rbp
mov qword [rsp + 0x90], rbp
mov r8d, dword [rsp + 0x80]
jmp 0x14005b55e
xor ecx, ecx
mov r15d, edi
sub r15d, r12d
mov dword [rsp + 0xbc], ecx
mov r14, rcx
mov qword [rsp + 0xc8], rcx
cmp al, 0x60
jne 0x14005c455
cmp byte [r12 + 3], 0x68
je 0x14005e7e1
cmp esi, r10d
jne 0x14005c487
mov r8, r12
movzx eax, byte [r8 + 1]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [r8 + 2]
or rcx, rax
add r8, rcx
cmp byte [r8], 0x55
jne 0x14005c45d
mov ecx, edi
sub ecx, r8d
mov dword [rsp + 0xbc], ecx
xor ecx, ecx
cmp r13d, ecx
jne 0x14005c556
cmp esi, 1
mov rax, qword [rsp + 0x108]
mov r9, qword [rsp + 0x1f8]
mov r8d, dword [rsp + 0x7c]
mov byte [rdi], cl
mov qword [rsp + 0x20], rax
mov rcx, r12
jg 0x14005c4fa
mov edx, 1
call fcn.14004bf20
lea rbx, [r12 + 1]
movsxd r8, r15d
mov rcx, rbx
mov rdx, r12
call fcn.140016710
xor ecx, ecx
inc rdi
cmp esi, ecx
jne 0x14005c4e9
mov byte [r12], WSAStartup
mov rbx, qword [rsp + 0x70]
jmp 0x14005c3f7
lea eax, [rbp + 0x69]
mov qword [rsp + 0x90], rbx
mov byte [r12], al
jmp 0x14005c542
mov edx, 4
call fcn.14004bf20
lea rcx, [r12 + 4]
movsxd r8, r15d
mov rdx, r12
call fcn.140016710
xor ecx, ecx
lea eax, [rbp + 0x69]
mov byte [r12], al
mov byte [r12 + 1], 0x5e
add rdi, 4
mov byte [r12 + 2], cl
mov byte [r12 + 3], cl
lea r14, [r12 + 2]
add r12, 4
mov qword [rsp + 0x90], r12
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
dec esi
jmp 0x14005c68e
cmp r13d, 1
jle 0x14005c687
mov r10, qword [rsp + 0x200]
cmp r10, rcx
je 0x14005c5c1
movd xmm0, dword [rsp + 0xc0]
lea eax, [r13 - 1]
movd xmm1, eax
mov ecx, eax
cvtdq2pd xmm0, xmm0
imul ecx, dword [rsp + 0xc0]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x1400a3ce0]
ja 0x14005e7f4
mov r8d, dword [r10]
mov eax, 0x7fffffeb
sub eax, r8d
cmp eax, ecx
jl 0x14005e7f4
lea eax, [r8 + rcx]
mov dword [r10], eax
jmp 0x14005c685
cmp dword [rsp + 0x118], ecx
je 0x14005c5d9
cmp r11d, ecx
cmovl r11d, r9d
mov dword [rsp + 0x8c], r11d
cmp r13d, 1
jle 0x14005c687
mov rdx, qword [rsp + 0x1f8]
lea eax, [r13 - 1]
mov r13, qword [rsp + 0x90]
mov r14d, eax
movsxd r12, r15d
mov rbx, qword [rdx + 0x48]
mov r8, r12
mov rcx, rdi
mov rdx, r13
call fcn.140016710
mov r8, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x1f8]
cmp r8, rbx
jae 0x14005c657
movzx eax, byte [r8 + 1]
movzx ecx, byte [r8]
shl ecx, 8
or ecx, eax
mov rax, qword [rdx + 0x48]
add ecx, r15d
sar ecx, 8
mov byte [rax], cl
mov rax, qword [rdx + 0x48]
mov cl, r15b
add cl, byte [r8 + 1]
mov byte [rax + 1], cl
add qword [rdx + 0x48], 2
add r8, 2
jmp 0x14005c61f
add rdi, r12
sub r14, 1
mov qword [rsp + 0x108], rbx
jne 0x14005c5fd
mov r13d, dword [rsp + 0xc4]
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xc8]
xor ecx, ecx
cmp esi, ecx
jle 0x14005c697
sub esi, r13d
mov dword [rsp + 0xb4], esi
cmp esi, ecx
jl 0x14005c885
mov r9, qword [rsp + 0x200]
cmp r9, rcx
je 0x14005c701
cmp esi, ecx
jle 0x14005c701
mov eax, dword [rsp + 0xc0]
movd xmm0, esi
add eax, 7
mov ecx, eax
movd xmm1, eax
imul ecx, esi
cvtdq2pd xmm0, xmm0
sub ecx, 6
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x1400a3ce0]
ja 0x14005e7f4
mov r8d, dword [r9]
mov eax, 0x7fffffeb
sub eax, r8d
cmp eax, ecx
jl 0x14005e7f4
lea eax, [r8 + rcx]
mov dword [r9], eax
jmp 0x14005c7ec
dec esi
cmp esi, ecx
jl 0x14005c7ec
mov r8, qword [rsp + 0x1f8]
add bpl, 0x69
movsxd r13, r15d
movsxd rbx, esi
mov r12, qword [r8 + 0x48]
mov byte [rdi], bpl
inc rdi
cmp esi, ecx
je 0x14005c74c
mov byte [rdi], 0x5e
cmp r14, rcx
je 0x14005c739
lea ecx, [rdi + 1]
sub ecx, r14d
mov eax, ecx
lea r14, [rdi + 1]
mov byte [rdi + 2], cl
sar eax, 8
add rdi, 3
mov byte [rdi - 2], al
mov rdx, qword [rsp + 0x90]
mov r8, r13
mov rcx, rdi
call fcn.140016710
mov r9, qword [rsp + 0x108]
mov r8, qword [rsp + 0x1f8]
cmp r9, r12
jae 0x14005c7c5
movzx edx, byte [r9]
mov rax, rbx
neg rax
movzx eax, byte [r9 + 1]
sbb ecx, ecx
shl edx, 8
or edx, eax
mov rax, qword [r8 + 0x48]
and ecx, 3
inc ecx
add edx, ecx
mov cl, r15b
add edx, r15d
sar edx, 8
mov byte [rax], dl
mov rax, rbx
neg rax
mov rax, qword [r8 + 0x48]
sbb edx, edx
add cl, byte [r9 + 1]
and edx, 3
inc edx
add cl, dl
mov byte [rax + 1], cl
add qword [r8 + 0x48], 2
add r9, 2
jmp 0x14005c76f
dec esi
xor ecx, ecx
add rdi, r13
dec rbx
cmp esi, ecx
mov qword [rsp + 0x108], r12
jge 0x14005c71d
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
xor ebp, ebp
cmp r14, rbp
je 0x14005c84a
mov ecx, edi
mov rdx, rdi
sub ecx, r14d
inc ecx
movsxd rax, ecx
sub rdx, rax
movzx r8d, byte [rdx + 1]
movzx eax, byte [rdx + 2]
shl r8d, 8
or r8d, eax
jne 0x14005c81a
mov r14, rbp
jmp 0x14005c820
movsxd rax, r8d
sub r14, rax
mov byte [rdi], 0x55
mov byte [rdi + 2], cl
mov eax, ecx
sar eax, 8
add rdi, 3
mov byte [rdi - 2], al
mov byte [rdx + 1], al
mov byte [rdx + 2], cl
cmp r14, rbp
jne 0x14005c7f3
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
mov ecx, dword [rsp + 0x7c]
cmp dword [rsp + 0x98], ebp
je 0x14005c3f9
mov al, byte [rdx]
cmp al, 0x41
jne 0x14005cc19
mov al, byte [rdx + 3]
cmp al, 0x10
je 0x14005c872
cmp al, 0xf
mov eax, ebp
jne 0x14005c877
mov eax, 2
add eax, 4
movsxd rcx, eax
add rdx, rcx
jmp 0x14005cc63
movsxd rax, dword [rsp + 0xbc]
add bpl, 0x56
mov rsi, rdi
sub rsi, rax
mov r12, rsi
movzx eax, byte [rsi + 1]
mov byte [rsi], bpl
xor ebp, ebp
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rsi + 2]
or rcx, rax
sub r12, rcx
cmp qword [rsp + 0x200], rbp
jne 0x14005c83d
cmp byte [r12], 0x5d
je 0x14005c83d
mov rbx, r12
mov r8d, dword [rsp + 0x7c]
mov rdx, rsi
mov rcx, rbx
call fcn.14004bff0
cmp eax, ebp
jne 0x14005c8fd
movzx eax, byte [rbx + 1]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rbx + 2]
or rcx, rax
add rbx, rcx
cmp byte [rbx], 0x54
je 0x14005c8cb
jmp 0x14005c83d
add byte [r12], 3
jmp 0x14005c83d
xor eax, eax
cmp esi, eax
jne 0x14005c915
mov rdi, r12
jmp 0x14005c3f7
cmp r13d, eax
jne 0x14005c948
cmp esi, r10d
jne 0x14005c93d
add bpl, 0x46
mov byte [rdi], bpl
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
inc rdi
xor ebp, ebp
jmp 0x14005c84a
cmp esi, 1
jne 0x14005c959
add bpl, 0x4a
jmp 0x14005c923
cmp r13d, 1
jne 0x14005c959
cmp esi, r10d
jne 0x14005c959
add bpl, 0x48
jmp 0x14005c923
add bpl, 0x4c
mov eax, r13d
mov byte [rdi], bpl
sar eax, 8
mov byte [rdi + 2], r13b
mov byte [rdi + 1], al
cmp esi, r10d
mov ebp, 0
cmove esi, ebp
mov eax, esi
mov byte [rdi + 4], sil
mov dword [rsp + 0xb4], esi
sar eax, 8
add rdi, 5
mov byte [rdi - 2], al
jmp 0x14005c83d
mov r8d, dword [rsp + 0x7c]
xor r9d, r9d
cmp r8d, r9d
je 0x14005c9aa
lea rdx, [rdi - 1]
test byte [rdx], 0x80
jne 0x14005c9d6
cmp r13d, 1
movzx r12d, byte [rdi - 1]
jle 0x14005ca06
mov rdx, qword [rsp + 0x1f8]
mov eax, dword [rdx + 0x78]
or eax, r12d
or eax, dword [rsp + 0xd0]
mov dword [rsp + 0x8c], eax
jmp 0x14005ca0e
dec rdx
mov al, byte [rdx]
and al, 0xc0
cmp al, 0x80
je 0x14005c9d3
mov r12d, edi
lea rcx, [rsp + 0x11c]
sub r12d, edx
movsxd r8, r12d
call fcn.140016710
mov rbx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x7c]
bts r12d, 7
xor r9d, r9d
mov rdx, qword [rsp + 0x1f8]
cmp r14d, r9d
jne 0x14005c357
cmp esi, r9d
jge 0x14005c357
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x30], rdx
mov edx, dword [rsp + 0x80]
movzx ecx, byte [rcx]
mov dword [rsp + 0x28], edx
lea r9, [rsp + 0x11c]
mov edx, r12d
jmp 0x14005c32e
movzx r14d, byte [rdx + 1]
movzx r15d, byte [rdx + 2]
or r8d, 0xffffffff
mov rax, rdi
mov rdi, rdx
cmp esi, r9d
je 0x14005c3f7
add ebp, ecx
cmp r13d, r9d
jne 0x14005caa7
cmp esi, r8d
jne 0x14005ca84
add bpl, 0x1f
mov byte [rdx], bpl
lea rdi, [rdx + 1]
jmp 0x14005cbcd
lea rdi, [rdx + 1]
cmp esi, 1
jne 0x14005ca99
add bpl, 0x23
mov byte [rdx], bpl
jmp 0x14005cbcd
add bpl, 0x25
mov eax, esi
mov byte [rdx], bpl
sar eax, 8
jmp 0x14005cad8
cmp r13d, 1
jne 0x14005cae7
cmp esi, r8d
jne 0x14005cab8
add bpl, 0x21
jmp 0x14005ca78
mov rdi, rax
cmp esi, 1
je 0x14005c3f7
add bpl, 0x25
lea rdi, [rax + 1]
mov byte [rax], bpl
lea eax, [rsi - 1]
sar eax, 8
dec sil
mov byte [rdi], al
mov byte [rdi + 1], sil
add rdi, 2
jmp 0x14005cbcd
lea rdi, [rdx + 1]
add cl, 0x27
mov eax, r13d
sar eax, 8
mov byte [rdx], cl
mov byte [rdi + 1], r13b
mov byte [rdi], al
add rdi, 2
cmp esi, r9d
jge 0x14005cb4f
cmp dword [rsp + 0x7c], r9d
je 0x14005cb33
cmp r12d, 0x80
jl 0x14005cb33
mov ebx, r12d
lea rdx, [rsp + 0x11c]
mov rcx, rdi
and ebx, 7
mov r8, rbx
call fcn.140016710
add rdi, rbx
jmp 0x14005cb49
mov byte [rdi], r12b
inc rdi
cmp r14d, r9d
jl 0x14005cb49
mov byte [rdi], r14b
mov byte [rdi + 1], r15b
add rdi, 2
add bpl, 0x1f
jmp 0x14005cbae
cmp esi, r13d
je 0x14005cbcd
cmp dword [rsp + 0x7c], r9d
je 0x14005cb85
cmp r12d, 0x80
jl 0x14005cb85
mov ebx, r12d
lea rdx, [rsp + 0x11c]
mov rcx, rdi
and ebx, 7
mov r8, rbx
call fcn.140016710
add rdi, rbx
xor r9d, r9d
jmp 0x14005cb8b
mov byte [rdi], r12b
inc rdi
cmp r14d, r9d
jl 0x14005cb9b
mov byte [rdi], r14b
mov byte [rdi + 1], r15b
add rdi, 2
sub esi, r13d
mov dword [rsp + 0xb4], esi
cmp esi, 1
jne 0x14005cbb6
add bpl, 0x23
mov byte [rdi], bpl
inc rdi
jmp 0x14005cbcd
add bpl, 0x25
mov eax, esi
mov byte [rdi], bpl
sar eax, 8
mov byte [rdi + 2], sil
mov byte [rdi + 1], al
add rdi, 3
mov ecx, dword [rsp + 0x7c]
xor ebp, ebp
cmp ecx, ebp
je 0x14005cc01
cmp r12d, 0x80
jl 0x14005cc01
mov ebx, r12d
lea rdx, [rsp + 0x11c]
mov rcx, rdi
and ebx, 7
mov r8, rbx
call fcn.140016710
add rdi, rbx
jmp 0x14005c83d
mov byte [rdi], r12b
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xa8]
inc rdi
jmp 0x14005c84e
mov r8d, reloc.OLEAUT32.dll_SafeArrayRedim
cmp al, r8b
je 0x14005cc28
cmp al, 0x34
jne 0x14005cc6b
lea r8, sym.imp.gdi32.dll_SetDIBitsToDevice
movzx eax, al
movzx eax, byte [rax + r8 + 0x9c9e0]
add rdx, rax
mov qword [rsp + 0xa8], rdx
cmp ecx, ebp
je 0x14005cc6b
cmp byte [rdx - 1], 0xc0
jb 0x14005cc6b
movzx eax, byte [rdx - 1]
and eax, 0x3f
movzx eax, byte [rax + r8 + 0x9cab0]
add rdx, rax
mov qword [rsp + 0xa8], rdx
mov esi, edi
sub esi, edx
cmp esi, ebp
jle 0x14005c3f9
movzx eax, byte [rdx]
cmp eax, 0x30
jg 0x14005ccca
je 0x14005ccc5
cmp eax, 0x1f
je 0x14005ccb8
cmp eax, 0x21
je 0x14005ccb3
cmp eax, 0x23
je 0x14005ccae
cmp eax, 0x25
je 0x14005cca9
cmp eax, 0x2c
je 0x14005cca4
cmp eax, 0x2e
jne 0x14005cce3
mov byte [rdx], 0x36
jmp 0x14005ccbb
mov byte [rdx], 0x35
jmp 0x14005ccbb
mov byte [rdx], 0x2b
jmp 0x14005ccbb
mov byte [rdx], 0x2a
jmp 0x14005ccbb
mov byte [rdx], reloc.OLEAUT32.dll_SafeArrayCreateEx
jmp 0x14005ccbb
mov byte [rdx], SafeArrayCreateEx
mov rbx, qword [rsp + 0x70]
jmp 0x14005c3f9
mov byte [rdx], gethostname
jmp 0x14005ccbb
cmp eax, 0x32
je 0x14005cd41
cmp eax, 0x39
je 0x14005cd39
cmp eax, 0x3b
je 0x14005cd34
cmp eax, 0x3d
je 0x14005cd2f
cmp eax, 0x3f
je 0x14005cd2a
lea rcx, [rdx + 3]
movsxd r8, esi
call fcn.140016710
mov rax, qword [rsp + 0xa8]
add esi, 3
mov byte [rax], 0x5d
mov byte [rdi + 3], 0x55
mov byte [rdi + 5], sil
mov ecx, esi
sar ecx, 8
add rdi, 6
mov byte [rdi - 2], cl
mov rax, qword [rsp + 0xa8]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0xa8]
mov byte [rax + 2], sil
jmp 0x14005ccbb
mov byte [rdx], 0x45
jmp 0x14005ccbb
mov byte [rdx], 0x44
jmp 0x14005ccbb
mov byte [rdx], 0x43
jmp 0x14005ccbb
mov byte [rdx], 0x42
jmp 0x14005ccbb
mov byte [rdx], gethostname
jmp 0x14005ccbb
test r8b, 2
je 0x14005cd64
cmp r13d, 0xfffffffe
mov eax, 0xffffffff
cmove r13d, eax
mov dword [rsp + 0x88], r13d
xor ebp, ebp
mov byte [rdi], 0x1a
mov r12, rbp
mov qword [rsp + 0x90], rbp
jmp 0x14005b556
bt dword [r11 + 0x70], 0x19
jb 0x14005e813
xor eax, eax
mov ebp, 1
mov byte [rsp + 0xf8], sil
cmp dword [rsp + 0x7c], eax
je 0x14005cdd7
mov edx, 0xc0
cmp esi, edx
jl 0x14005cdd7
inc rbx
mov al, byte [rbx]
and al, dl
cmp al, 0x80
jne 0x14005cdd7
lea rcx, [rsp + 0xf9]
mov qword [rsp + 0x70], rbx
mov al, byte [rbx]
inc ebp
mov byte [rcx], al
inc rcx
inc rbx
mov al, byte [rbx]
and al, dl
cmp al, 0x80
je 0x14005cdb6
mov sil, byte [rsp + 0xf8]
mov r15d, dword [rsp + 0x8c]
movsx eax, r8b
xor ebx, ebx
mov r12, rdi
and eax, 1
mov qword [rsp + 0x90], rdi
or eax, 0x1c
mov byte [rdi], al
inc rdi
cmp ebp, ebx
jle 0x14005ce21
lea rdx, [rsp + 0xf8]
mov r8d, ebp
mov rcx, rdi
mov ebx, ebp
call fcn.140016710
mov r8d, dword [rsp + 0x80]
add rdi, rbx
xor ebx, ebx
mov eax, reloc.WSOCK32.dll_listen
cmp sil, al
je 0x14005ce35
cmp sil, 0xa
jne 0x14005e4f0
mov rax, qword [rsp + 0x1f8]
or dword [rax + 0x74], 0x20
jmp 0x14005e4f8
mov r9d, r8d
mov r8d, dword [r11 + 0x60]
lea rcx, [rsp + 0x70]
xor ebp, ebp
mov rdx, r15
mov qword [rsp + 0x138], rbx
mov dword [rsp + 0x20], ebp
call fcn.14003c7b0
mov r11d, eax
cmp dword [r15], ebp
jne 0x14005e727
cmp eax, ebp
jge 0x14005d65a
neg eax
cmp eax, 0x1a
jne 0x14005ceb5
mov rbx, qword [rsp + 0x70]
cmp byte [rbx + 1], 0x5c
jne 0x14005ce9d
cmp byte [rbx + 2], 0x45
jne 0x14005ce9d
add rbx, 2
jmp 0x14005c41e
mov r8d, dword [rsp + 0x80]
mov r9d, 1
mov dword [rsp + 0x78], r9d
jmp 0x14005b737
cmp eax, 0x19
je 0x14005d608
cmp r13d, 0xfffffffe
jne 0x14005cedc
cmp eax, 5
jle 0x14005cedc
lea ecx, [r13 + 1]
cmp eax, 0x17
cmovl r13d, ecx
mov dword [rsp + 0x88], r13d
mov ecx, dword [rsp + 0x8c]
mov rbx, qword [rsp + 0x70]
mov dword [rsp + 0xb0], r13d
mov dword [rsp + 0xb8], ecx
cmp eax, 0x1b
jne 0x14005d2f0
mov rcx, qword [rsp + 0x1f8]
inc rbx
mov r8d, reloc.OLEAUT32.dll_SafeArrayRedim
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x3c
mov qword [rsp + 0x108], rax
lea eax, [r8 + 0x17]
mov r12d, ebp
cmove r8d, eax
cmp byte [rbx + 1], 0x2b
mov dword [rsp + 0xbc], ebp
je 0x14005cfcf
cmp byte [rbx + 1], 0x2d
je 0x14005cfcf
mov cl, byte [rbx + 1]
lea r10d, [rax - 0x3d]
lea r9, [rbx + 1]
cmp cl, bpl
je 0x14005cf98
mov r15, qword [rsp + 0x1f8]
movzx eax, cl
cmp eax, r8d
je 0x14005cf90
mov rax, qword [r15 + 0x18]
movzx ecx, cl
mov dl, byte [rcx + rax]
mov al, dl
and al, 4
neg al
sbb eax, eax
and r10d, eax
test dl, 0x10
je 0x14005cf90
inc r9
mov cl, byte [r9]
cmp cl, bpl
jne 0x14005cf63
mov r15, qword [rsp + 0x1d8]
movzx eax, byte [r9]
cmp eax, r8d
je 0x14005cfb5
mov r12, qword [rsp + 0x90]
mov dword [r15], reloc.WSOCK32.dll_gethostname
jmp 0x14005c41e
mov r11, qword [rsp + 0x1f8]
cmp r10d, ebp
je 0x14005bcc7
lea r9, sym.imp.gdi32.dll_SetDIBitsToDevice
jmp 0x14005cffd
lea rcx, [rbx + 2]
lea r9, sym.imp.gdi32.dll_SetDIBitsToDevice
jmp 0x14005cfdf
inc rcx
movzx eax, byte [rcx]
test byte [rax + r9 + 0x9e0e0], 4
jne 0x14005cfdc
movzx eax, byte [rcx]
cmp eax, r8d
jne 0x14005cfa1
mov r11, qword [rsp + 0x1f8]
inc rbx
mov qword [rsp + 0x70], rbx
movzx edx, byte [rbx]
cmp edx, 0x2b
jne 0x14005d033
inc rbx
mov qword [rsp + 0x70], rbx
movzx eax, byte [rbx]
test byte [rax + r9 + 0x9e0e0], 4
jne 0x14005d27c
mov dword [r15], 0x3f
jmp 0x14005e8d2
cmp edx, 0x2d
jne 0x14005d27c
lea rcx, [rbx + 1]
movzx eax, byte [rcx]
test byte [rax + r9 + 0x9e0e0], 4
jne 0x14005d274
mov r8d, dword [rsp + 0x80]
mov ecx, ebp
mov r10d, ebp
mov dword [rsp + 0xc8], ebp
lea rax, [rsp + 0xc8]
mov dword [rsp + 0x90], ecx
cmp dl, 0x29
je 0x14005d102
cmp dl, 0x3a
je 0x14005d0f3
inc rbx
movzx ecx, dl
mov qword [rsp + 0x70], rbx
cmp ecx, 0x2d
je 0x14005d0e4
cmp ecx, 0x4a
je 0x14005d0d9
cmp ecx, 0x55
je 0x14005d0d3
cmp ecx, 0x58
je 0x14005d0ce
cmp ecx, 0x69
je 0x14005d0c9
cmp ecx, 0x6d
je 0x14005d0c4
cmp ecx, 0x73
je 0x14005d0bf
cmp ecx, 0x78
jne 0x14005e81f
or dword [rax], 8
jmp 0x14005d0ec
or dword [rax], 4
jmp 0x14005d0ec
or dword [rax], 2
jmp 0x14005d0ec
or dword [rax], 1
jmp 0x14005d0ec
or dword [rax], 0x40
jmp 0x14005d0ec
bts dword [rax], 9
jmp 0x14005d0ec
bts dword [rax], 0x13
or dword [r11 + 0x74], 0x10
jmp 0x14005d0ec
lea rax, [rsp + 0x90]
mov dl, byte [rbx]
cmp dl, 0x29
jne 0x14005d07e
mov r10d, dword [rsp + 0xc8]
mov ecx, dword [rsp + 0x90]
or r10d, r8d
not ecx
and r10d, ecx
cmp byte [rbx], 0x29
jne 0x14005bd79
mov rax, qword [r11 + 0x28]
add rax, 3
cmp rdi, rax
jne 0x14005d138
mov rax, qword [rsp + 0x200]
cmp rax, rbp
je 0x14005d132
cmp dword [rax], 6
jne 0x14005d138
mov dword [r11 + 0x70], r10d
jmp 0x14005d181
mov eax, r10d
xor eax, r8d
test al, 7
je 0x14005d156
mov byte [rdi], 0x19
mov al, r10b
and al, 7
add rdi, 2
mov byte [rdi - 1], al
mov rbx, qword [rsp + 0x70]
mov eax, r10d
shr eax, 9
and eax, 1
mov dword [rsp + 0x128], eax
xor eax, 1
mov dword [rsp + 0x124], eax
movsx eax, r10b
and eax, 1
shl eax, 8
mov dword [rsp + 0xd0], eax
mov rax, qword [rsp + 0x1c0]
mov r8d, r10d
mov dword [rsp + 0x80], r10d
mov r12, rbp
mov qword [rsp + 0x90], rbp
mov dword [rax], r10d
jmp 0x14005b55e
cmp r8d, 2
jg 0x14005e83a
cmp r8d, 1
jne 0x14005baa9
or r11d, 0xffffffff
mov eax, r11d
mov ecx, r11d
mov dword [rsp + 0x100], eax
mov dword [rsp + 0x114], ecx
jmp 0x14005babb
mov rdi, qword [rsp + 0xa8]
cmp ebp, 0x68
je 0x14005d26d
cmp ebp, 0x5d
mov edx, dword [rsp + 0x8c]
mov dword [rsp + 0xb0], r13d
mov dword [rsp + 0xb8], edx
mov dword [rsp + 0x118], r14d
jl 0x14005d252
xor ebp, ebp
cmp r13d, 0xfffffffe
jne 0x14005d23d
cmp ecx, ebp
jl 0x14005d228
mov r13d, ecx
mov dword [rsp + 0x118], 1
jmp 0x14005d22b
mov r13d, r11d
mov dword [rsp + 0x88], r13d
mov dword [rsp + 0xb0], r11d
jmp 0x14005d259
cmp ecx, ebp
jl 0x14005d259
cmp eax, ebp
jge 0x14005d261
mov eax, ecx
or eax, esi
mov dword [rsp + 0x100], eax
jmp 0x14005d259
cmp ebp, 0x58
jne 0x14005d26d
xor ebp, ebp
cmp eax, ebp
jl 0x14005bb1a
mov dword [rsp + 0x8c], eax
jmp 0x14005bb1a
xor ebp, ebp
jmp 0x14005bb1a
mov rbx, rcx
mov qword [rsp + 0x70], rcx
mov esi, ebp
jmp 0x14005d292
lea ecx, [rsi + rsi*4]
movzx eax, al
inc rbx
lea esi, [rax + rcx*2 - 0x30]
mov qword [rsp + 0x70], rbx
movzx eax, byte [rbx]
test byte [rax + r9 + 0x9e0e0], 4
jne 0x14005d280
movzx eax, byte [rbx]
cmp eax, r8d
jne 0x14005e85b
cmp edx, 0x2d
jne 0x14005d2d6
cmp esi, ebp
je 0x14005e852
mov eax, dword [r11 + 0x60]
sub eax, esi
lea esi, [rax + 1]
cmp esi, ebp
jg 0x14005d45b
mov dword [r15], reloc.WSOCK32.dll_ntohs
jmp 0x14005e8d2
cmp edx, 0x2b
jne 0x14005d45b
cmp esi, ebp
je 0x14005e852
add esi, dword [r11 + 0x60]
jmp 0x14005d45b
cmp eax, 0x1c
jne 0x14005d5a3
lea rcx, [rbx + 1]
lea esi, [rax + 0xb]
cmp byte [rcx], 0x3c
je 0x14005d313
cmp byte [rcx], sil
je 0x14005d313
cmp byte [rcx], 0x7b
jne 0x14005d5a3
mov r11, qword [rsp + 0x1f8]
mov qword [rsp + 0x70], rcx
cmp byte [rcx], 0x3c
mov r13d, ebp
mov rbx, rcx
jne 0x14005d335
mov edx, 0x3e
mov r8d, edx
jmp 0x14005d347
cmp byte [rcx], sil
mov r8d, 0x7d
cmove r8d, esi
mov edx, 0x3e
mov rax, qword [r11 + 0x18]
inc rbx
mov qword [rsp + 0x70], rbx
movzx ecx, byte [rbx]
mov r14, rbx
test byte [rcx + rax], 0x10
je 0x14005d373
mov rcx, rax
inc rbx
mov qword [rsp + 0x70], rbx
movzx eax, byte [rbx]
test byte [rax + rcx], 0x10
jne 0x14005d362
mov esi, ebx
sub esi, r14d
cmp qword [rsp + 0x200], rbp
je 0x14005d3a6
cmp esi, ebp
je 0x14005e864
movzx eax, byte [rbx]
cmp eax, r8d
jne 0x14005e79d
cmp esi, 0x20
jg 0x14005bf4b
mov esi, ebp
jmp 0x14005d442
mov rbx, qword [r11 + 0x50]
xor eax, eax
movsxd r12, esi
cmp dword [r11 + 0x58], eax
jle 0x14005d3fc
xor r15d, r15d
lea rdx, [rbx + 2]
mov r8, r12
mov rcx, r14
call fcn.14001d4a0
cmp eax, r15d
jne 0x14005d3d3
cmp byte [rbx + r12 + 2], r15b
je 0x14005d3ec
mov r11, qword [rsp + 0x1f8]
inc ebp
movsxd rax, dword [r11 + 0x5c]
add rbx, rax
cmp ebp, dword [r11 + 0x58]
jl 0x14005d3b8
jmp 0x14005d3f4
mov r11, qword [rsp + 0x1f8]
mov r15, qword [rsp + 0x1d8]
cmp ebp, dword [r11 + 0x58]
jge 0x14005d412
movzx eax, byte [rbx]
movzx esi, byte [rbx + 1]
shl eax, 8
or esi, eax
xor ebp, ebp
jmp 0x14005d442
xor ebp, ebp
mov r8d, esi
mov rdx, r14
cmp dword [rsp + 0xc8], ebp
mov r9d, ebp
mov rcx, r11
setne r9b
call fcn.14004c2c0
cmp eax, ebp
mov esi, eax
jle 0x14005e869
mov r11, qword [rsp + 0x1f8]
cmp r13d, ebp
mov r13d, dword [rsp + 0x88]
je 0x14005d5b0
mov r14d, dword [rsp + 0xc8]
mov rbx, qword [r11 + 0x28]
mov r12, rdi
mov qword [rsp + 0x90], rdi
cmp qword [rsp + 0x200], rbp
jne 0x14005d527
mov edx, dword [rsp + 0x7c]
mov byte [rdi], bpl
cmp esi, ebp
je 0x14005d492
mov rcx, qword [r11 + 0x28]
mov r8d, esi
call fcn.14003bdf0
mov rbx, rax
cmp rbx, rbp
jne 0x14005d4f2
mov r9d, ebp
cmp r14d, ebp
mov r8d, esi
setne r9b
xor edx, edx
mov rcx, r11
call fcn.14004c2c0
cmp eax, ebp
jl 0x14005e869
mov r11, qword [rsp + 0x1f8]
mov rcx, rdi
movsxd rbx, esi
sub rcx, qword [r11 + 0x28]
mov rax, qword [r11 + 0x48]
add rbx, qword [r11 + 0x28]
add rcx, 4
sar rcx, 8
mov byte [rax], cl
mov rax, qword [r11 + 0x48]
mov cl, dil
sub cl, byte [r11 + 0x28]
add cl, 4
mov byte [rax + 1], cl
add qword [r11 + 0x48], 2
jmp 0x14005d527
movzx ecx, byte [rbx + 1]
movzx eax, byte [rbx + 2]
shl ecx, 8
or ecx, eax
jne 0x14005d527
mov r8, qword [rsp + 0x1f0]
mov r9d, edx
mov rcx, rbx
mov rdx, rdi
call fcn.1400543d0
cmp eax, ebp
jne 0x14005e875
mov r11, qword [rsp + 0x1f8]
mov r10, qword [rsp + 0x200]
mov r8d, dword [rsp + 0x80]
mov r14, qword [rsp + 0xa0]
mov r9d, dword [rsp + 0x78]
mov byte [rdi], 0x5d
mov byte [rdi + 1], bpl
mov byte [rdi + 2], 6
mov byte [rdi + 3], 0x52
mov eax, ebx
sub eax, dword [r11 + 0x28]
add rdi, 9
sar rax, 8
mov byte [rdi - 5], al
sub bl, byte [r11 + 0x28]
mov byte [rdi - 4], bl
mov byte [rdi - 3], 0x55
mov byte [rdi - 2], bpl
mov byte [rdi - 1], 6
mov rbx, qword [rsp + 0x70]
mov dword [rsp + 0xc0], 9
cmp r13d, 0xfffffffe
jne 0x14005b747
or eax, 0xffffffff
mov r13d, eax
mov dword [rsp + 0x88], eax
jmp 0x14005b747
cmp eax, 0x1d
jl 0x14005d612
mov esi, 0xffffffe3
sub esi, r11d
mov byte [rdi], 0x51
cmp r13d, 0xfffffffe
mov eax, 0xffffffff
cmove r13d, eax
mov eax, esi
mov r12, rdi
sar eax, 8
mov qword [rsp + 0x90], rdi
mov byte [rdi + 2], sil
mov byte [rdi + 1], al
add rdi, 3
cmp esi, 0x20
mov dword [rsp + 0x88], r13d
mov eax, 1
jge 0x14005d5f1
mov ecx, esi
shl eax, cl
mov rcx, qword [rsp + 0x1f8]
or dword [rcx + 0x6c], eax
cmp esi, dword [rcx + 0x68]
jle 0x14005e57b
mov dword [rcx + 0x68], esi
mov rbx, qword [rsp + 0x70]
jmp 0x14005c41e
cmp eax, 0x16
je 0x14005e881
cmp eax, 0xf
je 0x14005e881
cmp eax, 0x10
je 0x14005e881
cmp eax, 5
jle 0x14005d644
cmp eax, 0x17
jge 0x14005d644
mov r12, rdi
mov qword [rsp + 0x90], rdi
jmp 0x14005d64f
mov r12, rbp
mov qword [rsp + 0x90], rbp
neg r11b
mov byte [rdi], r11b
inc rdi
jmp 0x14005d608
cmp dword [rsp + 0x7c], ebp
je 0x14005d68b
cmp eax, 0x7f
jle 0x14005d68b
lea rdx, [rsp + 0xf8]
mov ecx, eax
call fcn.14003b8a0
mov sil, byte [rsp + 0xf8]
mov ebp, eax
mov r8d, dword [rsp + 0x80]
jmp 0x14005cdd7
mov sil, al
mov byte [rsp + 0xf8], al
mov ebp, 1
jmp 0x14005d67e
mov al, byte [rbx + 1]
mov r12, rdi
mov qword [rsp + 0x90], rdi
cmp al, 0x3a
je 0x14005d6b6
cmp al, 0x2e
je 0x14005d6b6
cmp al, 0x3d
jne 0x14005d6de
lea rdx, [rsp + 0x138]
mov rcx, rbx
call fcn.14003bcd0
xor ebp, ebp
cmp eax, ebp
je 0x14005d6e0
cmp byte [rbx + 1], 0x3a
lea eax, [rbp + 0x1f]
lea ecx, [rbp + 0xd]
cmove eax, ecx
jmp 0x14005e789
xor ebp, ebp
mov eax, ebp
mov dword [rsp + 0x98], eax
inc rbx
mov qword [rsp + 0x70], rbx
movzx esi, byte [rbx]
cmp esi, 0x5c
jne 0x14005d72a
inc rbx
cmp byte [rbx], 0x45
je 0x14005d6e9
lea r8d, [rsi - 0x59]
lea rdx, [0x1400a3c24]
mov rcx, rbx
call fcn.14001d4a0
cmp eax, ebp
jne 0x14005d77b
mov rbx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x98]
add rbx, 3
jmp 0x14005d6e9
cmp eax, ebp
jne 0x14005d738
cmp esi, 0x5e
jne 0x14005d738
lea eax, [rsi - 0x5d]
jmp 0x14005d6e2
cmp esi, 0x5d
jne 0x14005d77b
mov rcx, qword [rsp + 0x1f8]
bt dword [rcx + 0x70], 0x19
jae 0x14005d77b
neg eax
sbb eax, eax
and eax, 0xffffff9e
add eax, 0x6f
mov byte [rdi], al
lea eax, [rsi - 0x5e]
inc rdi
cmp r13d, 0xfffffffe
cmove r13d, eax
mov dword [rsp + 0x88], r13d
mov dword [rsp + 0xb0], r13d
jmp 0x14005d608
or r14d, 0xffffffff
lea rcx, [rsp + 0xd8]
xor edx, edx
lea r8d, [r14 + 0x21]
mov dword [rsp + 0x84], ebp
mov r13d, ebp
call fcn.140017520
mov rbx, qword [rsp + 0x70]
mov r15d, ebp
lea rbp, [rdi + 4]
xor r9d, r9d
mov rax, rbp
mov qword [rsp + 0xc8], rax
cmp esi, r9d
je 0x14005e8bb
mov r11d, dword [rsp + 0x7c]
jmp 0x14005d7c9
xor r9d, r9d
cmp r11d, r9d
je 0x14005d83b
cmp esi, 0x7f
jle 0x14005d83b
movzx esi, byte [rbx]
cmp esi, 0xc0
jl 0x14005d83b
mov eax, esi
lea r8, sym.imp.gdi32.dll_SetDIBitsToDevice
and eax, 0x3f
movzx ecx, byte [rax + r8 + 0x9cab0]
mov r9, rcx
and esi, dword [r8 + rcx*4 + 0x9ca90]
lea edx, [rcx + rcx*2]
mov r8d, 1
add edx, edx
mov ecx, edx
shl esi, cl
jmp 0x14005d823
movzx eax, byte [r8 + rbx]
sub edx, 6
and eax, 0x3f
mov ecx, edx
shl eax, cl
or esi, eax
inc r8
cmp r8, r9
jle 0x14005d80f
mov rax, qword [rsp + 0xc8]
add rbx, r9
xor r9d, r9d
mov qword [rsp + 0x70], rbx
mov r10, qword [rsp + 0x200]
cmp r10, r9
je 0x14005d850
sub ebp, eax
add dword [r10], ebp
mov rbp, rax
mov ecx, dword [rsp + 0x78]
cmp ecx, r9d
je 0x14005d879
cmp esi, 0x5c
jne 0x14005e0d8
cmp byte [rbx + 1], 0x45
jne 0x14005e0d8
mov dword [rsp + 0x78], r9d
inc rbx
jmp 0x14005da1e
cmp esi, 0x5b
jne 0x14005dae7
mov al, byte [rbx + 1]
cmp al, 0x3a
je 0x14005d895
cmp al, 0x2e
je 0x14005d895
cmp al, 0x3d
jne 0x14005e0d8
lea rdx, [rsp + 0x138]
mov rcx, rbx
call fcn.14003bcd0
xor r9d, r9d
cmp eax, r9d
je 0x14005e0d4
cmp byte [rbx + 1], 0x3a
mov rax, qword [rsp + 0x1f8]
mov r12d, r9d
mov rsi, qword [rax + 0x10]
jne 0x14005e89d
add rbx, 2
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x5e
jne 0x14005d8ec
lea r12d, [r9 + 1]
inc rbx
mov dword [rsp + 0x84], r12d
mov qword [rsp + 0x70], rbx
mov r13, qword [rsp + 0x138]
mov rcx, rbx
mov edx, r13d
sub edx, ebx
call fcn.14003bc50
xor ecx, ecx
cmp eax, ecx
jl 0x14005e88a
test byte [rsp + 0x80], 1
je 0x14005d91b
cmp eax, 2
cmovle eax, ecx
lea eax, [rax + rax*2]
lea rcx, [rsp + 0x148]
mov r8d, SafeArrayDestroyDescriptor
movsxd rbx, eax
lea rax, sym.imp.gdi32.dll_SetDIBitsToDevice
movsxd rdx, dword [rax + rbx*4 + 0x9d6c0]
add rdx, rsi
call fcn.140016710
lea rcx, sym.imp.gdi32.dll_SetDIBitsToDevice
xor r10d, r10d
movsxd rax, dword [rcx + rbx*4 + 0x9d6c4]
mov ecx, dword [rcx + rbx*4 + 0x9d6c8]
lea r11d, [r10 + 0x20]
cmp eax, r10d
jl 0x14005d9a2
cmp ecx, r10d
lea rdx, [rsp + 0x148]
lea r8, [rax + rsi]
mov r9, r11
jl 0x14005d98f
mov al, byte [r8]
inc r8
or byte [rdx], al
inc rdx
sub r9, 1
jne 0x14005d97c
jmp 0x14005d9a2
mov al, byte [r8]
inc r8
not al
and byte [rdx], al
inc rdx
sub r9, 1
jne 0x14005d98f
cmp ecx, r10d
jge 0x14005d9a9
neg ecx
cmp ecx, 1
jne 0x14005d9b8
and byte [rsp + 0x149], 0xc3
jmp 0x14005d9c5
cmp ecx, 2
jne 0x14005d9c5
and byte [rsp + 0x153], 0x7f
mov rcx, r10
mov rdx, r11
cmp r12d, r10d
je 0x14005d9eb
mov al, byte [rsp + rcx + 0x148]
inc rcx
not al
or byte [rsp + rcx + 0xd7], al
sub rdx, 1
jne 0x14005d9d0
jmp 0x14005da02
mov al, byte [rsp + rcx + 0x148]
inc rcx
or byte [rsp + rcx + 0xd7], al
sub rdx, 1
jne 0x14005d9eb
lea rbx, [r13 + 1]
mov r13d, 0xa
mov r10, qword [rsp + 0x200]
mov r9d, dword [rsp + 0x78]
mov r11d, dword [rsp + 0x7c]
inc rbx
xor edx, edx
mov qword [rsp + 0x70], rbx
movzx esi, byte [rbx]
cmp esi, edx
je 0x14005e8bb
mov rax, qword [rsp + 0xc8]
cmp esi, 0x5d
jne 0x14005d7c6
cmp r9d, edx
jne 0x14005d7c6
mov ecx, dword [rsp + 0x98]
cmp r13d, 1
jne 0x14005e59b
cmp r15d, edx
jne 0x14005e59b
cmp r11d, edx
je 0x14005da7d
cmp ecx, edx
je 0x14005da7d
cmp r14d, 0x80
jge 0x14005e59b
mov r15d, dword [rsp + 0x8c]
xor ebp, ebp
mov dword [rsp + 0xb8], r15d
cmp ecx, ebp
je 0x14005e4a4
mov r13d, dword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x80]
mov byte [rdi], 0x1e
mov byte [rdi + 1], r14b
mov rbx, qword [rsp + 0x70]
mov r14, qword [rsp + 0xa0]
cmp r13d, 0xfffffffe
lea eax, [rbp - 1]
cmove r13d, eax
add rdi, 2
mov dword [rsp + 0x88], r13d
mov dword [rsp + 0xb0], r13d
jmp 0x14005b747
cmp esi, 0x5c
jne 0x14005e0d8
mov r12, qword [rsp + 0x1f8]
mov ebx, dword [rsp + 0x80]
mov rdx, qword [rsp + 0x1d8]
mov r8d, dword [r12 + 0x60]
lea rcx, [rsp + 0x70]
mov r9d, ebx
mov dword [rsp + 0x20], 1
call fcn.14003c7b0
mov r10, qword [rsp + 0x1d8]
xor r9d, r9d
mov esi, eax
cmp dword [r10], r9d
jne 0x14005e727
mov edx, eax
neg edx
cmp edx, 5
jne 0x14005db56
lea esi, [rdx + 3]
mov rbx, qword [rsp + 0x70]
mov r11d, dword [rsp + 0x7c]
mov ecx, dword [rsp + 0x78]
jmp 0x14005e0e0
cmp edx, 0x16
jne 0x14005db60
lea esi, [rdx + 0x42]
jmp 0x14005db43
cmp edx, 0x11
jne 0x14005db6a
lea esi, [rdx + 0x41]
jmp 0x14005db43
cmp edx, 0x1a
jne 0x14005dba1
mov rbx, qword [rsp + 0x70]
cmp byte [rbx + 1], 0x5c
jne 0x14005db89
cmp byte [rbx + 2], 0x45
jne 0x14005db89
add rbx, 2
jmp 0x14005da0c
mov r10, qword [rsp + 0x200]
mov r9d, 1
mov dword [rsp + 0x78], r9d
jmp 0x14005da19
cmp edx, 0x19
je 0x14005e0ca
cmp eax, r9d
jge 0x14005db43
mov r8, qword [r12 + 0x10]
add r13d, 2
cmp qword [rsp + 0x200], r9
jne 0x14005dd28
mov ecx, edx
sub ecx, 6
je 0x14005dcf4
sub ecx, 1
je 0x14005dccd
sub ecx, 1
je 0x14005dc8a
sub ecx, 1
je 0x14005dc59
sub ecx, 1
je 0x14005dc25
cmp ecx, 1
jne 0x14005dd5e
lea rcx, [rsp + 0xd8]
add r8, 0xa0
mov edx, SafeArrayAllocDescriptor
mov al, byte [r8]
inc r8
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dc0a
mov rbx, qword [rsp + 0x70]
jmp 0x14005da0c
mov dword [rsp + 0x84], 1
lea rcx, [rsp + 0xd8]
add r8, 0xa0
mov edx, SafeArrayAllocDescriptor
mov al, byte [r8]
inc r8
not al
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dc44
jmp 0x14005dc1b
lea rax, [rsp + 0xd8]
lea rcx, [rsp + 0xd8]
mov edx, SafeArrayAllocDescriptor
sub r8, rax
mov al, byte [r8 + rcx]
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dc71
and byte [rsp + 0xd9], 0xf7
jmp 0x14005dc1b
lea rax, [rsp + 0xd8]
mov dword [rsp + 0x84], 1
lea rcx, [rsp + 0xd8]
sub r8, rax
mov edx, SafeArrayAllocDescriptor
mov al, byte [rcx + r8]
not al
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dcad
lea eax, [rdx + 8]
or byte [rsp + 0xd9], al
jmp 0x14005dc1b
lea rcx, [rsp + 0xd8]
add r8, 0x40
mov edx, SafeArrayAllocDescriptor
mov al, byte [r8]
inc r8
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dcde
jmp 0x14005dc1b
mov dword [rsp + 0x84], 1
lea rcx, [rsp + 0xd8]
add r8, 0x40
mov edx, SafeArrayAllocDescriptor
mov al, byte [r8]
inc r8
not al
or byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14005dd10
jmp 0x14005dc1b
cmp eax, 0xfffffff9
je 0x14005dc1b
cmp eax, 0xfffffffa
je 0x14005dc1b
cmp eax, 0xfffffff5
je 0x14005dc1b
cmp eax, 0xfffffff6
je 0x14005dc1b
cmp eax, 0xfffffff7
je 0x14005dc1b
cmp eax, 0xfffffff8
je 0x14005dc1b
cmp edx, 0x13
jne 0x14005de57
mov r11d, dword [rsp + 0x7c]
or byte [rsp + 0xd9], 2
or byte [rsp + 0xdc], 1
or byte [rsp + 0xec], 1
cmp r11d, r9d
je 0x14005de40
lea r15d, [rdx - 0x12]
mov ecx, 0x1680
mov byte [rbp], r15b
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x180e
mov byte [rbp], r15b
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2000
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x200a
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x202f
mov byte [rbp], r15b
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x205f
mov byte [rbp], r15b
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x3000
mov byte [rbp], r15b
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov rbx, qword [rsp + 0x70]
mov r10, qword [rsp + 0x200]
mov r9d, dword [rsp + 0x78]
jmp 0x14005da1e
cmp edx, 0x12
jne 0x14005dfdc
mov edx, r9d
mov ecx, edx
mov r8d, 0xff
sub ecx, 1
je 0x14005de82
sub ecx, 3
je 0x14005de7a
cmp ecx, 0x10
jne 0x14005de88
mov r8d, 0xfe
jmp 0x14005de88
mov r8d, 0xfd
movsxd rax, edx
inc edx
or byte [rsp + rax + 0xd8], r8b
cmp edx, 0x20
jl 0x14005de63
mov r11d, dword [rsp + 0x7c]
cmp r11d, r9d
je 0x14005de40
mov byte [rbp], 2
inc rbp
mov ecx, 0x100
mov rdx, rbp
mov r15d, 1
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x167f
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x1681
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x180d
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x180f
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x1fff
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x200b
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x202e
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2030
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x205e
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2060
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2fff
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x3001
mov byte [rbp], 2
inc rbp
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x7fffffff
jmp 0x14005de32
cmp edx, 0x15
jne 0x14005e027
mov r11d, dword [rsp + 0x7c]
or byte [rsp + 0xd9], 0x3c
or byte [rsp + 0xe8], 0x20
cmp r11d, r9d
je 0x14005de40
mov byte [rbp], 2
lea r15d, [rdx - 0x14]
inc rbp
mov rdx, rbp
mov ecx, 0x2028
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2029
jmp 0x14005de32
cmp edx, 0x14
jne 0x14005e0b0
mov ecx, r9d
mov edx, ecx
mov r8d, 0xff
sub edx, 1
je 0x14005e04d
cmp edx, 0xf
jne 0x14005e053
mov r8d, 0xdf
jmp 0x14005e053
mov r8d, 0xc3
movsxd rax, ecx
inc ecx
or byte [rsp + rax + 0xd8], r8b
cmp ecx, 0x20
jl 0x14005e033
mov r11d, dword [rsp + 0x7c]
cmp r11d, r9d
je 0x14005de40
mov byte [rbp], 2
inc rbp
mov ecx, 0x100
mov rdx, rbp
mov r15d, 1
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2027
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, 0x2029
jmp 0x14005dfbd
test bl, 0x40
mov rbx, qword [rsp + 0x70]
jne 0x14005e8ad
movzx esi, byte [rbx]
sub r13d, 2
jmp 0x14005db48
mov r11d, dword [rsp + 0x7c]
jmp 0x14005de40
mov ecx, dword [rsp + 0x78]
mov r10, qword [rsp + 0x1d8]
cmp byte [rbx + 1], 0x5c
jne 0x14005e104
lea rax, [rbx + 2]
cmp byte [rax], 0x45
jne 0x14005e100
mov qword [rsp + 0x70], rax
cmp byte [rax + 1], 0x5c
mov ecx, r9d
mov rbx, rax
je 0x14005e0e6
mov dword [rsp + 0x78], ecx
mov eax, reloc.WSOCK32.dll_listen
mov r12, rbx
cmp esi, eax
je 0x14005e115
cmp esi, 0xa
jne 0x14005e121
mov rax, qword [rsp + 0x1f8]
or dword [rax + 0x74], 0x20
cmp ecx, r9d
jne 0x14005e2c9
cmp byte [rbx + 1], 0x2d
jne 0x14005e2c9
add rbx, 2
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x5c
jne 0x14005e18b
cmp byte [rbx + 1], 0x45
jne 0x14005e17b
add rbx, 2
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x5c
je 0x14005e142
jmp 0x14005e17b
cmp byte [rbx + 1], 0x51
jne 0x14005e18b
add rbx, 2
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x5c
jne 0x14005e182
cmp byte [rbx + 1], 0x45
jne 0x14005e182
add rbx, 2
mov qword [rsp + 0x70], rbx
cmp byte [rbx], 0x5c
je 0x14005e158
jmp 0x14005e18b
mov ecx, 1
mov dword [rsp + 0x78], ecx
cmp byte [rbx], r9b
je 0x14005e431
cmp ecx, r9d
jne 0x14005e1a2
cmp byte [rbx], 0x5d
je 0x14005e431
cmp r11d, r9d
movzx r11d, byte [rbx]
je 0x14005e210
cmp r11d, 0xc0
jl 0x14005e210
mov eax, r11d
lea r8, sym.imp.gdi32.dll_SetDIBitsToDevice
and eax, 0x3f
movzx ecx, byte [rax + r8 + 0x9cab0]
mov r9, rcx
and r11d, dword [r8 + rcx*4 + 0x9ca90]
lea edx, [rcx + rcx*2]
mov r8d, 1
add edx, edx
mov ecx, edx
shl r11d, cl
jmp 0x14005e1fc
movzx eax, byte [r8 + rbx]
sub edx, 6
and eax, 0x3f
mov ecx, edx
shl eax, cl
or r11d, eax
inc r8
cmp r8, r9
jle 0x14005e1e7
mov ecx, dword [rsp + 0x78]
add rbx, r9
xor r9d, r9d
mov qword [rsp + 0x70], rbx
cmp ecx, r9d
jne 0x14005e281
cmp r11d, 0x5c
jne 0x14005e281
mov rax, qword [rsp + 0x1f8]
mov r9d, dword [rsp + 0x80]
lea rcx, [rsp + 0x70]
mov r8d, dword [rax + 0x60]
mov rdx, r10
mov dword [rsp + 0x20], 1
call fcn.14003c7b0
mov r10, qword [rsp + 0x1d8]
xor r9d, r9d
mov r11d, eax
cmp dword [r10], r9d
jne 0x14005e727
cmp eax, r9d
jge 0x14005e27c
cmp eax, 0xfffffffb
jne 0x14005e273
mov rbx, qword [rsp + 0x70]
lea eax, [r11 + 0xd]
mov r11d, eax
jmp 0x14005e286
cmp eax, 0xffffffea
jne 0x14005e2b1
lea r11d, [rax + 0x6e]
mov rbx, qword [rsp + 0x70]
mov eax, 8
cmp r11d, esi
jl 0x14005e8b6
je 0x14005e2c4
mov eax, reloc.WSOCK32.dll_listen
cmp r11d, eax
je 0x14005e2a1
cmp r11d, 0xa
jne 0x14005e2fe
mov r12, qword [rsp + 0x1f8]
or dword [r12 + 0x74], 0x20
jmp 0x14005e306
cmp eax, 0xffffffef
jne 0x14005e2bc
lea r11d, [rax + 0x63]
jmp 0x14005e27c
mov rbx, r12
mov qword [rsp + 0x70], rbx
mov r11d, dword [rsp + 0x7c]
cmp r11d, r9d
je 0x14005e43e
cmp esi, 0xff
jg 0x14005e2f1
test byte [rsp + 0x80], 1
je 0x14005e43e
cmp esi, 0x7f
jle 0x14005e43e
mov r15d, 1
mov ecx, esi
jmp 0x14005de2b
mov r12, qword [rsp + 0x1f8]
cmp dword [rsp + 0x7c], r9d
je 0x14005e37d
cmp r11d, 0xff
jg 0x14005e328
mov ecx, dword [rsp + 0x80]
test cl, 1
je 0x14005e384
cmp r11d, 0x7f
jle 0x14005e384
mov byte [rbp], 2
inc rbp
mov ecx, esi
mov rdx, rbp
mov r15d, 1
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, r11d
mov rdx, rbp
call fcn.14003b8a0
movsxd rcx, eax
add rbp, rcx
mov ecx, dword [rsp + 0x80]
test r15b, cl
je 0x14005dc1b
cmp esi, 0x7f
jg 0x14005dc1b
mov rbx, qword [rsp + 0x70]
lea r11d, [r15 + 0x7e]
xor r9d, r9d
jmp 0x14005e384
mov ecx, dword [rsp + 0x80]
mov r10, qword [rsp + 0x200]
mov eax, r11d
mov r14d, r11d
sub eax, esi
mov dword [rsp + 0xbc], r11d
lea r13d, [r13 + rax + 1]
mov dword [rsp + 0xd4], r13d
cmp r10, r9
jne 0x14005da14
cmp esi, r11d
jg 0x14005da14
mov r10d, ecx
movsxd r9, esi
and r10d, 1
xor r14d, r14d
lea r13d, [r14 + 8]
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
idiv r13d
mov edx, 1
shl dl, cl
movsxd r8, eax
or byte [rsp + r8 + 0xd8], dl
cmp r10d, r14d
je 0x14005e412
mov rax, qword [r12 + 8]
movzx ecx, byte [rax + r9]
mov eax, ecx
and ecx, 7
cdq
idiv r13d
movsxd rdx, eax
mov eax, 1
shl al, cl
or byte [rsp + rdx + 0xd8], al
inc esi
inc r9
cmp esi, r11d
jle 0x14005e3cc
mov r13d, dword [rsp + 0xd4]
mov r14d, dword [rsp + 0xbc]
jmp 0x14005da0c
mov rbx, r12
mov qword [rsp + 0x70], rbx
jmp 0x14005e2c9
mov r9d, 8
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
idiv r9d
lea edx, [r9 - 7]
shl dl, cl
movsxd r8, eax
or byte [rsp + r8 + 0xd8], dl
test byte [rsp + 0x80], 1
je 0x14005e499
mov rax, qword [rsp + 0x1f8]
movsxd rcx, esi
mov rax, qword [rax + 8]
movzx esi, byte [rax + rcx]
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
idiv r9d
lea edx, [r9 - 7]
shl dl, cl
movsxd r8, eax
or byte [rsp + r8 + 0xd8], dl
inc r13d
mov r14d, esi
jmp 0x14005de45
cmp r11d, ebp
je 0x14005e4de
cmp r14d, 0x7f
jle 0x14005e4de
lea rdx, [rsp + 0xf8]
mov ecx, r14d
call fcn.14003b8a0
mov sil, byte [rsp + 0xf8]
mov ebp, eax
mov r13d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x80]
jmp 0x14005cddf
mov sil, r14b
mov byte [rsp + 0xf8], r14b
mov ebp, 1
jmp 0x14005e4c9
mov rax, qword [rsp + 0x1f8]
mov dword [rsp + 0xb8], r15d
cmp r13d, 0xfffffffe
jne 0x14005e563
mov ecx, dword [rsp + 0xd0]
or r11d, 0xffffffff
mov dword [rsp + 0xb0], r11d
cmp ebp, 1
je 0x14005e53f
cmp ecx, ebx
je 0x14005e53f
mov dword [rsp + 0x8c], r11d
mov r13d, r11d
mov dword [rsp + 0x88], r11d
mov rbx, qword [rsp + 0x70]
jmp 0x14005b730
movzx r13d, sil
or r13d, ecx
mov dword [rsp + 0x88], r13d
cmp ebp, 1
je 0x14005e57b
movzx ecx, byte [rdi - 1]
or ecx, dword [rax + 0x78]
mov dword [rsp + 0x8c], ecx
jmp 0x14005e535
cmp ebp, 1
mov ebp, dword [rsp + 0xd0]
mov dword [rsp + 0xb0], r13d
je 0x14005e585
cmp ebp, ebx
je 0x14005e585
mov rbx, qword [rsp + 0x70]
jmp 0x14005b728
movzx r15d, byte [rdi - 1]
or r15d, dword [rax + 0x78]
or r15d, ebp
mov dword [rsp + 0x8c], r15d
jmp 0x14005e535
mov r9d, dword [rsp + 0x88]
mov r12d, dword [rsp + 0x84]
mov eax, 0xffffffff
cmp r9d, 0xfffffffe
cmove r9d, eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x88], r9d
mov dword [rsp + 0xb0], r9d
cmp r15d, edx
je 0x14005e661
cmp r12d, edx
jne 0x14005e661
cmp ecx, edx
mov byte [rbp], dl
mov eax, edx
setne al
cmp r13d, edx
mov byte [rdi], 0x50
mov byte [rdi + 3], al
jle 0x14005e631
add rdi, 4
or al, 2
lea r8, [rbp + 1]
mov byte [rdi - 1], al
lea rcx, [rdi + 0x20]
sub r8, rdi
mov rdx, rdi
call fcn.140016710
lea rdx, [rsp + 0xd8]
mov r8d, SafeArrayDestroyDescriptor
mov rcx, rdi
call fcn.140016710
lea rdi, [rbp + 0x21]
jmp 0x14005e635
lea rdi, [rbp + 1]
mov r12, qword [rsp + 0x90]
mov rax, rdi
sub rax, r12
sar rax, 8
mov byte [r12 + 1], al
mov al, dil
sub al, r12b
mov byte [r12 + 2], al
mov rbx, qword [rsp + 0x70]
jmp 0x14005b720
xor ebp, ebp
cmp ecx, r12d
mov eax, ebp
setne al
add eax, 0x4e
mov byte [rdi], al
inc rdi
cmp ecx, ebp
je 0x14005e6a0
cmp r10, rbp
jne 0x14005e6be
lea rdx, [rsp + 0xd8]
mov rcx, rdi
lea r8d, [rbp + 0x20]
sub rdx, rdi
mov al, byte [rdx + rcx]
not al
mov byte [rcx], al
inc rcx
sub r8, 1
jne 0x14005e68e
jmp 0x14005e6be
lea rdx, [rsp + 0xd8]
mov r8d, SafeArrayDestroyDescriptor
mov rcx, rdi
call fcn.140016710
mov r10, qword [rsp + 0x200]
mov r13d, dword [rsp + 0x88]
add rdi, 0x20
jmp 0x14005bb15
mov dword [r15], reloc.WSOCK32.dll_sendto
jmp 0x14005e8d2
mov dword [r15], 0x3c
jmp 0x14005e8d2
mov dword [r15], 0x3b
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], reloc.WSOCK32.dll_ntohs
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], 0x3a
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], reloc.WSOCK32.dll_ntohs
mov rbx, qword [rsp + 0x70]
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
neg esi
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [rcx], eax
jmp 0x14005e727
mov rcx, qword [rsp + 0x1d8]
dec rbx
mov dword [rcx], 0x1a
jmp 0x14005e8d2
inc rbx
mov dword [r15], 0x1c
jmp 0x14005e8d2
mov dword [r15], reloc.WSOCK32.dll_select
jmp 0x14005e8d2
mov dword [r15], reloc.OLEAUT32.dll_SafeArrayDestroyData
jmp 0x14005e8d2
mov eax, reloc.OLEAUT32.dll_SafeArrayRedim
mov dword [r15], eax
jmp 0x14005e8d2
mov dword [r15], gethostbyname
jmp 0x14005e8d2
mov dword [r15], 0x2a
jmp 0x14005e8d2
mov dword [r15], 0x2b
jmp 0x14005e727
inc rbx
mov dword [r15], reloc.OLEAUT32.dll_SafeArrayGetElement
jmp 0x14005e8d2
sub edx, ebp
add edx, edi
mov dword [r8], edx
mov eax, 1
jmp 0x14005e8df
mov dword [r15], reloc.WSOCK32.dll_inet_ntoa
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], gethostname
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], reloc.WSOCK32.dll_sendto
jmp 0x14005e8d2
mov dword [r15], 9
jmp 0x14005e8d2
mov dword [r15], 0x40
jmp 0x14005e8d2
mov dword [r15], recvfrom
dec rbx
jmp 0x14005e8d2
mov dword [r15], gethostname
jmp 0x14005e727
mov dword [r15], 0x1b
jmp 0x14005e727
mov dword [r15], recvfrom
jmp 0x14005e8d2
mov dword [r15], 0x3a
jmp 0x14005e8d2
mov dword [r15], SafeArrayAllocDescriptor
jmp 0x14005e8d2
mov dword [r15], edx
jmp 0x14005e8d2
mov dword [r15], reloc.WSOCK32.dll_ntohs
jmp 0x14005e727
mov dword [r15], SafeArrayCreateEx
jmp 0x14005e727
mov dword [r15], 0x2d
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], SafeArrayAllocDescriptor
jmp 0x14005e727
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], SafeArrayAllocDescriptor
jmp 0x14005e8d2
mov dword [r10], 7
jmp 0x14005e8d2
mov dword [r10], eax
jmp 0x14005e8d2
mov rcx, qword [rsp + 0x1d8]
mov dword [rcx], 6
jmp 0x14005e8d2
mov dword [r15], reloc.WSOCK32.dll_gethostbyname
mov r9, qword [rsp + 0x1d0]
mov qword [r9], rbx
xor eax, eax
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret