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

Disassembly:
mov r11, rsp
push rsi
push rdi
sub rsp, 0x68
mov rsi, qword [0x1408c2608]
mov rdi, rsi
mov eax, dword [rsi + 0x4100]
cmp dword [rsi + 0x4104], eax
je 0x140015960
mov qword [r11 + 8], rbx
mov rbx, qword [rsi + 0x6310]
mov qword [r11 + 0x10], rbp
movsxd rbp, dword [rsi + 0x6308]
mov qword [r11 + 0x18], r12
shl rbp, 5
mov qword [r11 + 0x20], r14
add rbp, rbx
mov qword [r11 - 0x18], r15
movaps xmmword [rsp + 0x50], xmm6
cmp rbx, rbp
je 0x140015207
cmp dword [rbx + 4], 2
jne 0x1400151f7
mov rdx, rbx
mov rcx, rdi
call qword [rbx + recvfrom]
add rbx, 0x20
cmp rbx, rbp
jne 0x1400151e8
mov rsi, qword [0x1408c2608]
cmp dword [rsi + 0x4188], 2
jl 0x140015225
call fcn.1400149f0
cmp dword [rsi + 0x4188], 1
jg 0x140015210
mov rsi, qword [0x1408c2608]
xor r12d, r12d
lea r14, [rdi + 0x6258]
cmp qword [rdi + 0xe0], r12
je 0x1400152e3
mov rax, qword [r14]
cmp rax, qword [rdi + 0x6268]
jne 0x140015259
mov rax, qword [r14 + 8]
cmp rax, qword [rdi + 0x6270]
je 0x1400152e3
mov rcx, qword [rsi + 0x4d10]
movsxd rax, dword [rsi + 0x4d08]
lea rdx, [rcx + rax*8]
cmp rcx, rdx
je 0x140015286
mov eax, dword [rdi + 0x6278]
mov rbx, qword [rcx]
cmp dword [rbx], eax
je 0x140015289
add rcx, 8
cmp rcx, rdx
jne 0x140015276
mov rbx, r12
test byte [rdi + 0x63c4], 0x40
je 0x1400152c5
movss xmm3, dword [r14 + 8]
lea rcx, str._io__Calling_io.PlatformSetImeDataFn__:_WantVisible:__d__InputPos___.2f__.2f__n
movss xmm2, dword [r14 + 4]
movzx edx, byte [r14]
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
movq r9, xmm3
movq r8, xmm2
call fcn.14000ba30
mov rsi, qword [0x1408c2608]
test rbx, rbx
jne 0x1400152d4
mov rax, qword [rsi + 0x4d10]
mov rbx, qword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call qword [rdi + 0xe0]
mov rax, qword [rdi + 0x41b8]
mov byte [rdi + 0x4111], r12b
test rax, rax
je 0x140015306
cmp byte [rax + 0x101], r12b
jne 0x140015306
mov byte [rax + 0xff], r12b
call fcn.1400149f0
mov rcx, qword [0x1408c2608]
mov rbx, rcx
cmp qword [rcx + 0x4f68], r12
je 0x14001532a
call fcn.140020100
mov rcx, qword [0x1408c2608]
cmp qword [rbx + 0x4d88], r12
je 0x140015368
cmp byte [rcx + 0x4e21], r12b
je 0x140015368
cmp dword [rcx + 0x4e70], r12d
jne 0x140015368
cmp dword [rcx + 0x4ee0], r12d
jne 0x140015368
mov eax, dword [rbx + 0x4e24]
test al, 0xf
je 0x140015368
test al, al
js 0x140015368
call fcn.14001f050
mov rcx, qword [0x1408c2608]
mov ebp, r12d
xorps xmm6, xmm6
cmp dword [rdi + 0x6280], r12d
jle 0x1400154dd
mov r14, r12
nop
mov rax, qword [rdi + 0x6288]
mov rsi, qword [rax + r14 + 8]
test rsi, rsi
je 0x1400154cb
mov eax, dword [rdi + 0x4100]
cmp dword [rsi + 0xb0], eax
jne 0x1400154cb
movzx eax, byte [rsi + 0xcc]
test al, 1
je 0x1400154cb
mov rdx, qword [rsi + 0x88]
test rdx, rdx
je 0x1400154cb
cmp qword [rsi + 0x20], r12
jne 0x1400154cb
test al, 4
jne 0x1400154cb
movss xmm0, dword [rcx + 0x3a58]
movss xmm3, dword [rsi + 0x48]
addss xmm0, xmm0
movss xmm1, dword [rsi + 0x4c]
movaps xmm4, xmm3
addss xmm4, dword [rsi + 0x50]
movaps xmm2, xmm1
addss xmm3, xmm6
addss xmm2, dword [rsi + 0x54]
addss xmm0, dword [rcx + 0x3ed0]
lea rcx, [rsp + 0x30]
movss dword [rsp + 0x38], xmm4
movss dword [rsp + 0x30], xmm3
movss dword [rsp + 0x3c], xmm2
movss xmm2, dword [rdi + 0x3af8]
addss xmm0, xmm1
movss dword [rsp + 0x34], xmm0
movss xmm3, dword [rdx + 0x5c]
movss xmm0, dword [rdx + 0x58]
movaps xmm4, xmm3
addss xmm4, dword [rdx + 0x64]
movaps xmm1, xmm0
addss xmm1, dword [rdx + 0x60]
lea rdx, [rsp + 0x40]
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm3
movss dword [rsp + 0x4c], xmm4
movss dword [rsp + 0x48], xmm1
call fcn.140033660
mov rcx, qword [rsi + 0x88]
xor r8d, r8d
mov ebx, eax
mov rdx, qword [rcx + 0x2e8]
lea rcx, [rdx + 0x80]
call fcn.1400388c0
mov rcx, qword [rsi + 0x88]
lea r8, [rsp + 0x38]
mov r9d, dword [rsi + 0x84]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x28], ebx
movss xmm0, dword [rcx + 0x90]
mov rcx, qword [rcx + 0x2e8]
movss dword [rsp + 0x20], xmm0
call fcn.140032b10
mov rcx, qword [0x1408c2608]
inc ebp
add r14, 0x10
cmp ebp, dword [rdi + 0x6280]
jl 0x140015380
cmp qword [rcx + 0x4d18], r12
je 0x1400154f7
mov dword [rcx + 0x3edc], 0x3f800000
mov qword [rcx + 0x4d18], r12
cmp byte [rdi + 0x4fa4], r12b
je 0x14001557f
mov eax, dword [rdi + 0x4fac]
inc eax
cmp eax, dword [rdi + 0x4100]
jge 0x140015531
test byte [rdi + 0x4fa8], 0x20
jne 0x14001552d
mov ecx, dword [rdi + 0x4fb0]
cmp ecx, 0xffffffff
je 0x14001552d
call fcn.14001b2b0
test al, al
jne 0x140015531
mov al, 1
jmp 0x140015533
xor al, al
cmp byte [rdi + 0x4ff2], r12b
jne 0x140015540
test al, al
je 0x140015545
call fcn.14000a9e0
cmp byte [rdi + 0x4fa4], r12b
je 0x14001557f
mov eax, dword [rdi + 0x4100]
cmp dword [rdi + 0x4fac], eax
jge 0x14001557f
test byte [rdi + 0x4fa8], 1
jne 0x14001557f
lea rcx, [0x1400aafe0]
mov byte [rdi + 0x4fa5], 1
call fcn.140027e70
mov byte [rdi + 0x4fa5], r12b
mov eax, dword [rdi + 0x4100]
mov dword [rdi + 0x4104], eax
mov byte [rdi + 0x4110], r12b
mov rbx, qword [0x1408c2608]
cmp dword [rbx + 0x4224], r12d
jne 0x1400156f4
cmp dword [rbx + 0x4210], r12d
jne 0x1400156f4
mov rbp, qword [rbx + 0x4d88]
test rbp, rbp
je 0x1400155cc
cmp byte [rbp + 0x106], r12b
jne 0x1400156f4
cmp byte [rbx + 0x2b40], r12b
je 0x1400156b6
mov r14, qword [rbx + 0x41c0]
test r14, r14
je 0x140015617
mov rsi, qword [r14 + 0x3c8]
test rsi, rsi
je 0x1400156a5
test dword [rsi + 0x14], 0x4000000
je 0x14001561a
mov ecx, dword [rsi + 0xc8]
mov edx, 0x800
call fcn.14001b5e0
test al, al
jne 0x14001561a
jmp 0x1400156b6
mov rsi, r12
test rsi, rsi
je 0x1400156a5
mov rcx, r14
call fcn.140028ad0
cmp byte [rbx + 0x68], r12b
je 0x140015693
test byte [rsi + 0x14], 1
je 0x140015640
test byte [rsi + 0x445], 1
je 0x140015693
movss xmm0, dword [rsi + 0x58]
lea rdx, [rbx + 0x2aec]
movss xmm1, dword [rsi + 0x98]
lea rcx, [rsp + 0x40]
addss xmm1, dword [rsi + 0x5c]
movaps xmm2, xmm0
movss dword [rsp + 0x40], xmm0
addss xmm2, dword [rsi + 0x68]
movss xmm0, dword [rsi + 0x5c]
movss dword [rsp + 0x44], xmm0
movss dword [rsp + 0x4c], xmm1
movss dword [rsp + 0x48], xmm2
call fcn.14000b2d0
test al, al
jne 0x140015693
mov qword [rbx + 0x41d8], r12
cmp byte [rbx + 0x4221], r12b
je 0x1400156b6
mov qword [rbx + 0x41d8], r12
jmp 0x1400156b6
test rbp, rbp
je 0x1400156b6
mov edx, 2
xor ecx, ecx
call fcn.140016f60
cmp byte [rbx + 0x2b41], r12b
je 0x1400156f4
call fcn.1400185f0
mov rbx, qword [rbx + 0x41c0]
mov rsi, rax
test rbx, rbx
je 0x1400156e7
test rax, rax
je 0x1400156ea
mov rdx, rax
mov rcx, rbx
call fcn.14001b670
test al, al
jne 0x1400156ea
mov rbx, rsi
mov dl, 1
mov rcx, rbx
call fcn.14000ae80
mov r14, qword [0x1408c2608]
lea rsi, [r14 + 0x3a08]
mov ecx, dword [rsi + 4]
test ecx, ecx
jns 0x140015722
mov eax, ecx
cdq
sub eax, edx
mov edx, r12d
sar eax, 1
add eax, ecx
mov rcx, rsi
test eax, eax
cmovg edx, eax
call fcn.14002f9e0
mov dword [rsi], r12d
mov r15d, r12d
cmp dword [r14 + 0x4d08], r12d
jle 0x1400157e1
mov rbp, r12
nop dword [rax + rax]
mov rax, qword [r14 + 0x4d10]
mov rbx, qword [rax + rbp*8]
movsd xmm0, qword [rbx + 8]
movsd qword [rbx + 0x78], xmm0
mov eax, dword [r14 + 0x4100]
cmp dword [rbx + 0x6c], eax
jl 0x14001576d
comiss xmm6, dword [rbx + 0x10]
jae 0x14001576d
comiss xmm6, dword [rbx + 0x14]
jb 0x140015772
test rbp, rbp
jg 0x1400157ce
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x14001578d
cmp byte [rax + 0xff], r12b
je 0x1400157ce
cmp byte [rax + 0x107], r12b
jne 0x1400157ce
mov r8d, dword [rsi]
mov ecx, dword [rsi + 4]
cmp r8d, ecx
jne 0x1400157c1
inc r8d
test ecx, ecx
je 0x1400157aa
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1400157af
mov eax, 8
cmp eax, r8d
mov rcx, rsi
cmovg r8d, eax
mov edx, r8d
call fcn.14002f9e0
movsxd rcx, dword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax + rcx*8], rbx
inc dword [rsi]
inc r15d
inc rbp
cmp r15d, dword [r14 + 0x4d08]
jl 0x140015740
mov rax, qword [r14 + 0x4d10]
movaps xmm6, xmmword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x98]
mov rcx, qword [rax]
mov word [rcx + 0x59], r12w
mov byte [rcx + 0x5b], r12b
mov ecx, dword [rdi + 0x417c]
test ecx, ecx
jns 0x14001582d
mov eax, ecx
cdq
sub eax, edx
mov edx, r12d
sar eax, 1
add eax, ecx
lea rcx, [rdi + 0x4178]
test eax, eax
cmovg edx, eax
call fcn.14002f9e0
mov dword [rdi + 0x4178], r12d
lea rcx, [rdi + 0x4178]
mov edx, dword [rdi + 0x4158]
call fcn.14002f9e0
mov rbx, qword [rdi + 0x4160]
movsxd rax, dword [rdi + 0x4158]
lea rbp, [rbx + rax*8]
cmp rbx, rbp
je 0x14001588a
nop dword [rax]
mov rdx, qword [rbx]
cmp byte [rdx + 0xff], r12b
je 0x140015875
test dword [rdx + 0x14], 0x1000000
jne 0x140015881
lea rcx, [rdi + 0x4178]
call fcn.140004ff0
add rbx, 8
cmp rbx, rbp
jne 0x140015860
mov ecx, dword [rdi + 0x4178]
xor edx, edx
mov eax, dword [rdi + 0x4158]
mov dword [rdi + 0x4178], eax
mov eax, dword [rdi + 0x415c]
mov dword [rdi + 0x4158], ecx
mov ecx, dword [rdi + 0x417c]
mov dword [rdi + 0x417c], eax
mov rax, qword [rdi + 0x4160]
mov dword [rdi + 0x415c], ecx
mov rcx, qword [rdi + 0x4180]
mov qword [rdi + 0x4180], rax
mov eax, dword [rdi + 0x41a8]
mov qword [rdi + 0x4160], rcx
lea rcx, [rdi + 0x2be0]
mov dword [rdi + 0x104], eax
mov rax, qword [rdi + 0x38]
mov byte [rax + 0x18], r12b
movsd xmm0, qword [rdi + 0x118]
movsd qword [rdi + 0x2ae4], xmm0
mov byte [rdi + 0x2bd8], r12b
mov qword [rdi + 0x128], r12
call fcn.14002fd30
mov rbx, qword [rdi + 0x6310]
movsxd rsi, dword [rdi + 0x6308]
mov r12, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x88]
shl rsi, 5
add rsi, rbx
cmp rbx, rsi
je 0x140015958
cmp dword [rbx + 4], 3
jne 0x14001594f
mov rdx, rbx
mov rcx, rdi
call qword [rbx + recvfrom]
add rbx, 0x20
cmp rbx, rsi
jne 0x140015940
mov rbx, qword [rsp + 0x80]
add rsp, 0x68
pop rdi
pop rsi
ret