Function at 0x140009770
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x248]
sub rsp, 0x348
mov qword [rbp + 0x130], 0xfffffffffffffffe
movaps xmmword [rsp + 0x330], xmm6
mov rax, qword [0x140479080]
xor rax, rsp
mov qword [rbp + 0x220], rax
mov rax, r9
mov qword [rbp], rax
mov r12, r8
mov qword [rbp + 0xb8], r8
mov r13, rdx
mov qword [rbp + 0xb0], rdx
mov rsi, rcx
mov qword [rbp + 0x148], rdx
mov qword [rbp + 0x158], r8
mov qword [rbp + 0x140], rax
xor ebx, ebx
mov dword [rsp + 0x34], ebx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
call fcn.14000c2d0
mov qword [rsp + 0x58], rax
mov eax, ebx
mov dword [rsp + 0x30], ebx
lea r15, [rsi + 0x10]
lea r14d, [rbx - 1]
nop word [rax + rax]
mov rdi, qword [r13]
mov dword [rbp - 0x10], eax
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x200]
call fcn.14000c4a0
mov ebx, dword [rsp + 0x34]
or ebx, 1
mov r8, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14000983b
mov r8, qword [rsi]
mov r9, qword [r15]
lea rcx, [rbp + 0x200]
call fcn.14000d4a0
xor ecx, ecx
mov qword [rbp + 0x1f0], rcx
mov qword [rbp + 0x1f8], rcx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1e0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x1f0], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], cl
lea r8d, [rcx + 4]
lea rdx, str..png
lea rcx, [rbp + 0x1e0]
call fcn.14000b980
xor ecx, ecx
mov qword [rbp + 0x1d0], rcx
mov qword [rbp + 0x1d8], rcx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1c0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x1d0], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], cl
or ebx, 6
mov dword [rsp + 0x34], ebx
lea rdx, [rbp + 0x1c0]
cmp qword [rbp + 0x1d8], 0x10
cmovae rdx, qword [rbp + 0x1c0]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x20]
movzx ebx, al
lea rcx, [rbp + 0x1c0]
call fcn.14000b5d0
nop
lea rcx, [rbp + 0x1e0]
call fcn.14000b5d0
nop
lea rcx, [rbp + 0x200]
call fcn.14000b5d0
test bl, bl
jne 0x140009adc
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp + 0x20]
call qword [rax + 0x68]
nop
mov rdi, qword [rbp]
mov r9, qword [rdi]
mov rax, qword [r13]
mov qword [rbp + 0x90], rax
mov rcx, qword [r13 + 8]
mov qword [rbp + 0x98], rcx
test rcx, rcx
je 0x14000995a
mov eax, 1
lock xadd dword [rcx + 8], eax
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x110], xmm0
psrldq xmm0, 8
movq rdx, xmm0
test rdx, rdx
je 0x14000997f
mov eax, 1
lock xadd dword [rdx + 8], eax
mov rax, qword [r9]
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x110]
mov rcx, r9
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x140009aa4
mov rdx, qword [rsp + 0x58]
mov rbx, rdx
mov rax, qword [rdx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400099d5
mov ecx, dword [rsp + 0x30]
cmp dword [rax + 0x20], ecx
jge 0x1400099bf
mov rax, qword [rax + 0x10]
jmp 0x1400099c5
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1400099b4
cmp rbx, rdx
je 0x1400099d5
cmp ecx, dword [rbx + 0x20]
jge 0x140009a0a
lea rax, [rsp + 0x30]
mov qword [rbp + 0x70], rax
lea r8, [rbp + 0x70]
lea rcx, [rsp + 0x58]
call fcn.14000f050
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rbp + 0x78]
lea rcx, [rsp + 0x58]
call fcn.14000f080
mov rbx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x140009a21
mov eax, 1
lock xadd dword [rcx + 8], eax
mov qword [rbx + 0x28], rdx
mov rdi, qword [rbx + 0x30]
mov qword [rbx + 0x30], rcx
test rdi, rdi
je 0x140009a5f
mov eax, r14d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140009a5f
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x140009a5f
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rbp + 0x28]
test rbx, rbx
je 0x140009a95
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009a95
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009a95
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
jmp 0x140009810
mov rbx, qword [rbp + 0x28]
test rbx, rbx
je 0x140009ada
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009ada
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009ada
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x140009ae0
mov rdi, qword [rbp]
mov rbx, qword [r13]
movdqa xmm0, xmmword [0x1404107f0]
movdqu xmmword [rbp + 0x1b0], xmm0
mov byte [rbp + 0x1a0], 0
or dword [rsp + 0x34], 8
mov rdx, qword [r15]
add rdx, 9
lea rcx, [rbp + 0x1a0]
call fcn.14000aee0
cmp qword [rsi + 0x18], 0x10
jb 0x140009b1d
mov rsi, qword [rsi]
mov r8, qword [r15]
mov rdx, rsi
lea rcx, [rbp + 0x1a0]
call fcn.14000b980
mov r8d, 9
lea rdx, str.index.dat
lea rcx, [rbp + 0x1a0]
call fcn.14000b980
lea rdx, [rbp + 0x1a0]
cmp qword [rbp + 0x1b8], 0x10
cmovae rdx, qword [rbp + 0x1a0]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
movzx ebx, al
lea rcx, [rbp + 0x1a0]
call fcn.14000b5d0
test bl, bl
je 0x140009c4f
mov r9, qword [rsp + 0x58]
mov r8, qword [r9]
lea rdx, [rbp + 0x150]
lea rcx, [rsp + 0x58]
call fcn.14000ba00
mov edx, gethostname
mov rcx, qword [rsp + 0x58]
call fcn.14023ed44
nop
mov rbx, qword [r13 + 8]
test rbx, rbx
je 0x140009bde
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009bde
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009bde
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [r12 + 8]
test rbx, rbx
je 0x140009c15
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009c15
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009c15
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x140009c4a
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009c4a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], r14d
cmp r14d, 1
jne 0x140009c4a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
jmp 0x14000a82c
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov dword [rbp - 8], eax
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x60]
call fcn.14000cb60
nop
mov rsi, qword [r13]
mov rax, qword [rbp + 0x60]
movsxd rdi, dword [rax + 0x18]
add rdi, qword [rax + 8]
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + 0x40]
movsxd r8, eax
mov rdx, rdi
mov rcx, rsi
call qword [rbx + 0x28]
lea rcx, [rbp - 0x80]
call fcn.1400084d0
nop
movaps xmm1, xmmword [rbp + 0x60]
movaps xmmword [rbp + 0x50], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rcx, xmm0
test rcx, rcx
je 0x140009cc2
mov eax, 1
lock xadd dword [rcx + 8], eax
movaps xmm1, xmmword [rbp + 0x50]
lea rax, [rbp + 0x50]
mov qword [rbp + 8], rax
movdqa xmmword [rbp + 0x120], xmm1
psrldq xmm1, 8
movq rcx, xmm1
test rcx, rcx
je 0x140009ceb
mov eax, 1
lock xadd dword [rcx + 8], eax
xor r8d, r8d
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x80]
call fcn.14019feb0
nop
mov rbx, qword [rbp + 0x58]
test rbx, rbx
je 0x140009d35
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009d35
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009d35
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
xor edi, edi
mov dword [rsp + 0x50], edi
cmp byte [rbp - 0x68], dil
jne 0x140009d53
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009d84
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x140009d84
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x140009d84
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x50], eax
mov dword [r8 + 0x2c], r9d
mov r12d, edi
cmp dword [rsp + 0x50], edi
jbe 0x14000a6b5
lea r13, vtable.artemis::TRect_float_.0
lea r15, vtable.artemis::CFontRenderer::CCharSurface.0
movss xmm6, dword [0x140410478]
mov qword [rbp + 0x170], rdi
mov qword [rbp + 0x178], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x160], 0
mov qword [rbp + 0x180], 0
mov qword [rbp + 0x188], 0
mov qword [rbp + 0x190], 0
mov qword [rbp + 0x198], 0
xor r8d, r8d
lea rdx, [rbp + 0x160]
lea rcx, [rbp - 0x80]
call fcn.140008840
cmp byte [rbp - 0x68], 0
jne 0x140009e17
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009e48
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009e48
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009e48
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x180], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009e60
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009e91
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009e91
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009e91
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x184], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009ea9
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009eda
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009eda
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009eda
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x188], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009ef2
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009f23
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009f23
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009f23
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x18c], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009f3b
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009f6c
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009f6c
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009f6c
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x190], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009f84
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009fb5
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009fb5
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009fb5
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x194], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x140009fcd
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x140009ffe
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x140009ffe
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x140009ffe
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x198], eax
add dword [r8 + 0x2c], 4
cmp byte [rbp - 0x68], 0
jne 0x14000a016
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a047
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x14000a047
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x14000a047
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rbp + 0x19c], eax
add dword [r8 + 0x2c], 4
mov dword [rsp + 0x38], edi
cmp byte [rbp - 0x68], 0
jne 0x14000a063
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a092
mov r8, qword [rbp - 0x78]
mov rdx, qword [r8 + 0x18]
test rdx, rdx
je 0x14000a092
mov r9d, dword [r8 + 0x2c]
lea eax, [r9 + 4]
cmp dword [rdx + 0x1c], eax
jb 0x14000a092
movsxd rax, dword [rdx + 0x18]
add rax, qword [rdx + 8]
mov eax, dword [r9 + rax]
mov dword [rsp + 0x38], eax
add dword [r8 + 0x2c], 4
mov dword [rsp + 0x40], 0
cmp byte [rbp - 0x68], 0
jne 0x14000a0b2
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a0e3
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a0e3
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a0e3
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x68], eax
mov dword [r8 + 0x2c], r9d
cmp byte [rbp - 0x68], 0
jne 0x14000a0fb
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a12c
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a12c
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a12c
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x6c], eax
mov dword [r8 + 0x2c], r9d
cmp byte [rbp - 0x68], 0
jne 0x14000a144
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a175
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a175
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a175
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x40], eax
mov dword [r8 + 0x2c], r9d
mov dword [rsp + 0x3c], 0
cmp byte [rbp - 0x68], 0
jne 0x14000a195
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a1c6
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a1c6
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a1c6
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x44], eax
mov dword [r8 + 0x2c], r9d
cmp byte [rbp - 0x68], 0
jne 0x14000a1de
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a20f
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a20f
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a20f
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x48], eax
mov dword [r8 + 0x2c], r9d
cmp byte [rbp - 0x68], 0
jne 0x14000a227
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a258
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a258
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a258
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x4c], eax
mov dword [r8 + 0x2c], r9d
cmp byte [rbp - 0x68], 0
jne 0x14000a270
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.1401a01e0
test al, al
jne 0x14000a2a1
mov r8, qword [rbp - 0x78]
mov rax, qword [r8 + 0x18]
test rax, rax
je 0x14000a2a1
mov edx, dword [r8 + 0x2c]
lea r9d, [rdx + 4]
cmp dword [rax + 0x1c], r9d
jb 0x14000a2a1
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 0x18]
add rax, rcx
mov eax, dword [rdx + rax]
mov dword [rsp + 0x3c], eax
mov dword [r8 + 0x2c], r9d
mov qword [rbp + 0x30], r13
movss xmm1, dword [rsp + 0x44]
movss dword [rbp + 0x38], xmm1
movss xmm3, dword [rsp + 0x48]
movss dword [rbp + 0x3c], xmm3
movss xmm0, dword [rsp + 0x4c]
movss dword [rbp + 0x48], xmm0
movss xmm2, dword [rsp + 0x3c]
movss dword [rbp + 0x4c], xmm2
subss xmm0, xmm1
addss xmm0, xmm6
movss dword [rbp + 0x40], xmm0
subss xmm2, xmm3
addss xmm2, xmm6
movss dword [rbp + 0x44], xmm2
mov rdx, qword [rsp + 0x58]
mov rbx, rdx
mov rcx, qword [rdx + 8]
cmp byte [rcx + 0x19], 0
jne 0x14000a329
nop dword [rax]
mov eax, dword [rsp + 0x38]
cmp dword [rcx + 0x20], eax
jge 0x14000a30f
mov rcx, qword [rcx + 0x10]
jmp 0x14000a315
mov rbx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x14000a300
cmp rbx, rdx
je 0x14000a329
mov eax, dword [rbx + 0x20]
cmp dword [rsp + 0x38], eax
jge 0x14000a36a
lea rax, [rsp + 0x38]
mov qword [rbp + 0x80], rax
lea r8, [rbp + 0x80]
lea rcx, [rsp + 0x58]
call fcn.14000f050
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rbp + 0x88]
lea rcx, [rsp + 0x58]
call fcn.14000f080
mov rbx, qword [rbp + 0x88]
mov rax, qword [rbx + 0x28]
mov qword [rsp + 0x70], rax
mov rcx, qword [rbx + 0x30]
mov rsi, rcx
mov qword [rsp + 0x78], rcx
test rcx, rcx
je 0x14000a398
mov eax, 1
lock xadd dword [rcx + 8], eax
mov rsi, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rsi
test rcx, rcx
je 0x14000a3c1
mov eax, 1
lock xadd dword [rcx + 8], eax
mov rsi, qword [rsp + 0x78]
movss xmm0, dword [rsp + 0x68]
movss dword [rbp + 0xd8], xmm0
movss xmm1, dword [rsp + 0x6c]
movss dword [rbp + 0xdc], xmm1
movss xmm0, dword [rsp + 0x40]
movss dword [rbp + 0xe0], xmm0
mov qword [rbp + 0xe8], r13
movss xmm1, dword [rsp + 0x44]
movss dword [rbp + 0xf0], xmm1
movss xmm0, dword [rsp + 0x48]
movss dword [rbp + 0xf4], xmm0
movss xmm1, dword [rbp + 0x40]
movss dword [rbp + 0xf8], xmm1
movss xmm0, dword [rbp + 0x44]
movss dword [rbp + 0xfc], xmm0
movss xmm1, dword [rsp + 0x4c]
movss dword [rbp + 0x100], xmm1
movss xmm0, dword [rsp + 0x3c]
movss dword [rbp + 0x104], xmm0
test rcx, rcx
je 0x14000a486
mov eax, r14d
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a481
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a481
mov rsi, qword [rsp + 0x78]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x14000a486
mov rsi, qword [rsp + 0x78]
lea rdx, [rbp + 0x160]
call fcn.140007f20
mov rcx, rax
shl rcx, 0x15
not rax
add rcx, rax
mov rax, rcx
shr rax, 0x18
xor rax, rcx
imul rcx, rax, 0x109
mov rax, rcx
shr rax, 0xe
xor rax, rcx
imul r15, rax, 0x15
mov rax, r15
shr rax, 0x1c
xor r15, rax
mov eax, 0x80000001
imul r15, rax
lea r8, [rbp + 0x160]
mov rdx, r15
call fcn.14000ded0
mov rbx, rax
test rax, rax
jne 0x14000a5d1
lea rax, [0x140488e44]
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], rdi
mov ecx, 0x98
call fcn.14023ed4c
mov rdi, rax
mov qword [rbp + 0xa8], rax
mov qword [rax], rbx
mov qword [rax + 8], rbx
xor edx, edx
mov r8d, 0x88
lea rcx, [rax + 0x10]
call fcn.14025e440
lea rdx, [rbp + 0x160]
lea rcx, [rdi + 0x10]
call fcn.14000b200
mov eax, dword [rbp + 0x180]
mov dword [rdi + 0x30], eax
mov eax, dword [rbp + 0x184]
mov dword [rdi + 0x34], eax
mov eax, dword [rbp + 0x188]
mov dword [rdi + 0x38], eax
mov eax, dword [rbp + 0x18c]
mov dword [rdi + 0x3c], eax
mov eax, dword [rbp + 0x190]
mov dword [rdi + 0x40], eax
mov eax, dword [rbp + 0x194]
mov dword [rdi + 0x44], eax
mov eax, dword [rbp + 0x198]
mov dword [rdi + 0x48], eax
mov eax, dword [rbp + 0x19c]
mov dword [rdi + 0x4c], eax
lea rax, vtable.artemis::CFontRenderer::CCharSurface.0
mov qword [rdi + 0x50], rax
xor eax, eax
mov qword [rdi + 0x58], rax
mov qword [rdi + 0x60], rax
mov qword [rdi + 0x68], rax
mov dword [rdi + 0x70], eax
mov qword [rdi + 0x78], r13
mov qword [rdi + 0x80], rax
mov qword [rdi + 0x88], rax
mov qword [rdi + 0x90], rax
mov qword [rbp + 0xa8], rax
mov r8, r15
mov rdx, rdi
call fcn.14000d880
mov rbx, rax
xor edi, edi
lea rcx, [rbx + 0x58]
lea rdx, [rbp + 0xc8]
call fcn.14000aaf0
movss xmm0, dword [rsp + 0x68]
movss dword [rbx + 0x68], xmm0
movss xmm1, dword [rsp + 0x6c]
movss dword [rbx + 0x6c], xmm1
movss xmm0, dword [rsp + 0x40]
movss dword [rbx + 0x70], xmm0
movss xmm1, dword [rsp + 0x44]
movss dword [rbx + 0x80], xmm1
movss xmm0, dword [rsp + 0x48]
movss dword [rbx + 0x84], xmm0
movss xmm1, dword [rbp + 0x40]
movss dword [rbx + 0x88], xmm1
movss xmm0, dword [rbp + 0x44]
movss dword [rbx + 0x8c], xmm0
movss xmm1, dword [rsp + 0x4c]
movss dword [rbx + 0x90], xmm1
movss xmm0, dword [rsp + 0x3c]
movss dword [rbx + 0x94], xmm0
test rsi, rsi
je 0x14000a68d
mov eax, r14d
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a68d
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a68d
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
lea rcx, [rbp + 0x160]
call fcn.14000b5d0
inc r12d
cmp r12d, dword [rsp + 0x50]
lea r15, vtable.artemis::CFontRenderer::CCharSurface.0
jb 0x140009da7
mov r13, qword [rbp + 0xb0]
lea rcx, [rbp - 0x38]
call fcn.14000b2f0
mov edx, reloc.WS2_32.dll_recv
mov rcx, qword [rbp - 0x38]
call fcn.14023ed44
mov qword [rbp - 0x38], rdi
lea rcx, [rbp - 0x60]
call fcn.14000b2f0
mov edx, reloc.WS2_32.dll_recv
mov rcx, qword [rbp - 0x60]
call fcn.14023ed44
mov qword [rbp - 0x60], rdi
mov rbx, qword [rbp - 0x70]
test rbx, rbx
je 0x14000a721
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a721
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a721
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rbp + 0x68]
test rbx, rbx
je 0x14000a757
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a757
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a757
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov r9, qword [rsp + 0x58]
mov r8, qword [r9]
lea rdx, [rbp + 0x138]
lea rcx, [rsp + 0x58]
call fcn.14000ba00
mov edx, gethostname
mov rcx, qword [rsp + 0x58]
call fcn.14023ed44
nop
mov rbx, qword [r13 + 8]
test rbx, rbx
je 0x14000a7b6
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a7b6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a7b6
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rbp + 0xb8]
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14000a7f3
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a7f3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a7f3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rbx, qword [rbp]
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14000a82c
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a82c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lock xadd dword [rbx + 0xc], r14d
cmp r14d, 1
jne 0x14000a82c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rcx, qword [rbp + 0x220]
xor rcx, rsp
call fcn.14023ed20
movaps xmm6, xmmword [rsp + 0x330]
add rsp, 0x348
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret