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

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov eax, dword [rcx + 0x48]
mov qword [rsp + 0x40], 0
mov rbx, rcx
cmp eax, 0x2112
je 0x14004f880
cmp eax, 0x2110
je 0x14004f628
mov rax, qword [rbx + 8]
lea rdx, [rsp + 0x34]
mov dword [rbx + 0x1a8], 1
mov r9d, 1
mov qword [rsp + 0x28], rdx
mov r8d, 0x2112
mov edx, 0x2111
mov rcx, rbx
mov dword [rsp + 0x20], 0x4000
call qword [rax + 0x60]
mov esi, dword [rsp + 0x34]
movsxd r12, eax
test esi, esi
je 0x14004f613
mov dword [rbx + 0x1a8], 0
mov rbp, qword [rbx + 0x58]
mov qword [rsp + 0x38], rbp
cmp r12d, 0x22
jle 0x14004f5c0
lea rdx, [rbp + 2]
movzx eax, word [rbp]
mov r8d, dword [rbx]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rbx + 8]
rol ax, 8
mov rcx, qword [rdx + 0xc8]
movzx eax, ax
mov dword [rbx + 0x1ac], eax
test byte [rcx + 0x70], 8
je 0x14004f638
cmp eax, r8d
jle 0x14004f641
cmp dword [rdx], 0x1ffff
je 0x14004f641
mov r8d, 0x10b
mov dword [rsp + 0x20], 0x3c0
mov edx, 0x8a
lea r9, str.s3_srvr.c
mov ecx, 0x14
call fcn.1400ba710
mov eax, dword [rbx + 0x1ac]
mov r8d, 0x46
mov edx, eax
sar edx, 8
cmp edx, 3
jne 0x14004f5ea
cmp qword [rbx + 0xe8], 0
jne 0x14004f5ea
cmp qword [rbx + 0xf0], 0
jne 0x14004f5ea
mov dword [rbx], eax
jmp 0x14004f5ea
mov dword [rsp + 0x20], 0x3b2
mov r8d, 0xa0
mov edx, 0x8a
mov ecx, 0x14
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x32
mov edx, 2
mov rcx, rbx
call fcn.140060fd0
mov dword [rbx + 0x48], 5
mov r12d, 0xffffffff
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14004f613
call fcn.1400b75f0
mov eax, r12d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov dword [rcx + 0x48], 0x2111
jmp 0x14004f4c1
cmp eax, r8d
jl 0x14004f56b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, rbx
call fcn.1400404d0
add rbp, r12
test ah, 0x20
mov rax, qword [rsp + 0x38]
je 0x14004f67e
movzx edx, byte [rax + 0x20]
lea rdx, [rax + rdx + 0x21]
cmp rdx, rbp
jae 0x14004f980
cmp byte [rdx], 0
mov r12d, 1
je 0x14004f613
movdqu xmm0, xmmword [rax]
mov rdx, qword [rbx + 0x80]
movups xmmword [rdx + 0xc0], xmm0
movdqu xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0xd0], xmm1
movzx esi, byte [rax + 0x20]
lea rdx, [rax + 0x21]
mov qword [rsp + 0x38], rdx
lea rax, [rdx + rsi]
mov r8, rsi
cmp rbp, rax
jb 0x14004f970
cmp sil, 0x20
ja 0x14004f9f0
mov dword [rbx + 0xa8], 0
mov r11d, dword [rbx + 0x3c]
test r11d, r11d
je 0x14004f6df
test byte [rbx + 0x19e], 1
jne 0x14004f6fc
mov r9, rbp
mov rcx, rbx
call fcn.1400470a0
cmp eax, 1
je 0x14004f9d0
cmp eax, 0xffffffff
je 0x14004f5f7
mov edx, 1
mov rcx, rbx
call fcn.140046720
test eax, eax
je 0x14004f5f7
mov rax, qword [rbx + 8]
add rsi, qword [rsp + 0x38]
mov qword [rsp + 0x38], rsi
mov rax, qword [rax + 0xc8]
test byte [rax + 0x70], 8
je 0x14004f990
lea rax, [rsi + 1]
cmp rax, rbp
ja 0x14004fce0
mov qword [rsp + 0x38], rax
movzx r13d, byte [rsi]
add rax, r13
cmp rbp, rax
jb 0x14004fc75
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, rbx
movzx r12d, r13b
call fcn.1400404d0
test ah, 0x20
je 0x14004f777
test r12d, r12d
jne 0x14004fd52
mov r12d, 1
mov rsi, qword [rsp + 0x38]
mov rax, qword [rbx + 8]
add rsi, r13
cmp dword [rax], 0x1ffff
mov qword [rsp + 0x38], rsi
je 0x14004fced
lea rdx, [rsi + 2]
cmp rdx, rbp
ja 0x14004fc68
movzx r8d, word [rsi]
mov qword [rsp + 0x38], rdx
rol r8w, 8
test r8w, r8w
je 0x14004fcb1
movzx esi, r8w
lea rax, [rdx + rsi + 1]
cmp rbp, rax
jb 0x14004fc58
lea r9, [rsp + 0x40]
movzx r8d, r8w
mov rcx, rbx
call fcn.140040cc0
test rax, rax
je 0x14004f5f7
mov r10d, dword [rbx + 0xa8]
add rsi, qword [rsp + 0x38]
mov qword [rsp + 0x38], rsi
test r10d, r10d
je 0x14004fa24
mov rax, qword [rbx + 0x130]
xor esi, esi
mov rax, qword [rax + 0xd0]
mov r13d, dword [rax + 0x10]
jmp 0x14004f839
mov rcx, qword [rsp + 0x40]
mov edx, esi
call fcn.1400b7640
cmp dword [rax + 0x10], r13d
je 0x14004fa1f
add esi, 1
mov rcx, qword [rsp + 0x40]
call fcn.1400b7630
cmp eax, esi
jg 0x14004f820
mov r8d, 0xd7
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x4b6
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x2f
jmp 0x14004f5ea
mov edi, dword [rcx + 0x1a8]
test edi, edi
jne 0x14004f4c1
mov r12d, 1
mov rdx, qword [rbx + 0x100]
mov rax, qword [rdx + 0x268]
test rax, rax
je 0x14004f8c8
mov rdx, qword [rdx + 0x270]
mov rcx, rbx
call rax
test eax, eax
je 0x14004f9a0
js 0x14004fff7
mov dword [rbx + 0x28], 1
mov rcx, rbx
call fcn.140040880
mov rcx, rbx
mov r8, rax
mov rax, qword [rbx + 0x130]
mov rdx, qword [rax + 0xe0]
call fcn.14005c290
test rax, rax
je 0x14004fc82
mov rdx, qword [rbx + 0x80]
mov qword [rdx + 0x3a0], rax
mov rax, qword [rbx + 8]
mov rax, qword [rax + 0xc8]
test byte [rax + 0x70], 2
je 0x14004f91a
test byte [rbx + 0x140], 1
jne 0x14004f92a
mov rcx, rbx
call fcn.14005d960
test eax, eax
je 0x14004f9c4
cmp dword [rbx], 0x2ff
jle 0x14004f604
mov rcx, rbx
call fcn.1400390a0
test eax, eax
jg 0x14004f604
mov dword [rsp + 0x20], 0x5bc
mov r8d, 0xe2
mov edx, 0x8a
mov ecx, 0x14
lea r9, str.s3_srvr.c
call fcn.1400ba710
jmp 0x14004f5f7
mov dword [rsp + 0x20], 0x3eb
jmp 0x14004f5c8
mov dword [rsp + 0x20], 0x3d9
jmp 0x14004f5c8
mov r12d, 1
jmp 0x14004f79a
mov r8d, 0x179
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x57c
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x50
jmp 0x14004f5ea
mov rax, qword [rbx + 0x130]
mov eax, dword [rax]
cmp dword [rbx], eax
jne 0x14004f6fc
mov dword [rbx + 0xa8], 1
jmp 0x14004f711
mov dword [rsp + 0x20], 0x3f1
mov r8d, 0x9f
mov edx, 0x8a
mov ecx, 0x14
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x32
jmp 0x14004f5ea
mov rsi, qword [rsp + 0x38]
lea rax, [rsi + 1]
mov qword [rsp + 0x38], rax
movzx ecx, byte [rsi]
mov rdx, rcx
add rcx, rax
cmp rcx, rbp
ja 0x14004fdd4
test dl, dl
je 0x14004fea4
sub edx, 1
lea rdx, [rsi + rdx + 2]
jmp 0x14004fa65
add rax, 1
cmp rdx, rax
je 0x14004fea4
cmp byte [rax], 0
jne 0x14004fa58
cmp dword [rbx], 0x2ff
mov qword [rsp + 0x38], rcx
jle 0x14004fa8f
lea rdx, [rsp + 0x38]
mov r8, rbp
mov rcx, rbx
call fcn.1400381b0
test eax, eax
je 0x14004ff80
mov rax, qword [rbx + 0x80]
mov r9d, 0x20
mov edx, 1
mov rcx, rbx
lea r8, [rax + 0xa0]
call fcn.140034390
test eax, eax
jle 0x14004f9c4
mov r9d, dword [rbx + 0xa8]
mov rax, qword [rbx + 0x130]
test r9d, r9d
jne 0x14004fbce
cmp dword [rbx], 0x300
jle 0x14004fbce
mov r10, qword [rbx + 0x248]
test r10, r10
je 0x14004fbce
mov rcx, qword [rbx + 0x250]
mov dword [rax + 0x10], 0x30
lea rdx, [rax + 0x14]
lea r8, [rax + 0x10]
mov qword [rsp + 0x48], 0
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call r10
test eax, eax
je 0x14004fbc7
mov rax, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x130]
mov dword [rbx + 0xa8], 1
mov qword [rsp + 0x40], 0
mov qword [rdx + 0xe0], rax
mov rax, qword [rsp + 0x48]
mov dword [rdx + 0xb8], 0
test rax, rax
je 0x1400500a3
mov rcx, qword [rbx + 0xb8]
mov qword [rdx + 0xd0], rax
test rcx, rcx
je 0x14004fb82
call fcn.1400b75f0
mov rcx, qword [rbx + 0xc0]
test rcx, rcx
je 0x14004fb93
call fcn.1400b75f0
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 0xe0]
call fcn.1400b6ba0
mov qword [rbx + 0xb8], rax
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 0xe0]
call fcn.1400b6ba0
mov qword [rbx + 0xc0], rax
mov rax, qword [rbx + 0x130]
mov rdx, qword [rbx + 0x80]
mov r8d, dword [rax + 0xc8]
mov qword [rdx + 0x408], 0
test r8d, r8d
jne 0x14004ff10
mov ecx, dword [rbx + 0xa8]
test ecx, ecx
jne 0x14004fe07
mov rcx, qword [rax + 0xe0]
test rcx, rcx
je 0x14004fc16
call fcn.1400b75f0
mov rax, qword [rbx + 0x130]
mov rdx, qword [rsp + 0x40]
mov qword [rax + 0xe0], rdx
test rdx, rdx
je 0x140050007
mov qword [rsp + 0x40], 0
mov rcx, rbx
call fcn.14003a520
test eax, eax
jne 0x14004f894
mov dword [rsp + 0x20], 0x573
jmp 0x14004f94e
mov dword [rsp + 0x20], 0x47f
jmp 0x14004f9f8
mov dword [rsp + 0x20], 0x470
jmp 0x14004f5c8
mov dword [rsp + 0x20], 0x42a
jmp 0x14004f5c8
mov dword [rsp + 0x20], 0x589
mov r8d, 0xc1
mov edx, 0x8a
mov ecx, 0x14
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x28
jmp 0x14004f5ea
mov r8d, 0xb7
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x477
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x2f
jmp 0x14004f5ea
mov dword [rsp + 0x20], 0x423
jmp 0x14004f5c8
mov eax, dword [rbx + 0x1ac]
cmp eax, 0xfefd
jg 0x14004fde1
mov eax, dword [rbx + 0x19c]
test eax, 0x8000000
je 0x14004ff6c
mov rdx, qword [rbx + 0x100]
test dword [rdx + 0x54], 0x30000
jne 0x14004ff52
test eax, 0x4000000
jne 0x14004fe6d
mov dword [rbx], 0xfeff
call fcn.1400650b0
mov qword [rbx + 8], rax
mov rax, qword [rbx + 0x130]
mov edx, dword [rbx]
mov rsi, qword [rsp + 0x38]
mov dword [rax], edx
jmp 0x14004f79a
mov rax, qword [rbx + 0x88]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax + 0x104]
cmp r13d, 8
jae 0x14004fed8
test r13b, 4
jne 0x140050051
test r13d, r13d
je 0x14004fd9a
movzx r8d, byte [rcx]
mov byte [rax + 0x104], r8b
test r13b, 2
jne 0x14005008b
mov rax, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x170]
mov r9, qword [rdx + 0xc0]
test r9, r9
je 0x14004ffa9
lea rdx, [rax + 0x104]
mov r8d, r12d
mov rcx, rbx
call r9
test eax, eax
je 0x140050036
mov r12d, 2
jmp 0x14004f77d
mov dword [rsp + 0x20], 0x4c1
jmp 0x14004f9f8
mov rdx, qword [rbx + 0x100]
test dword [rdx + 0x54], 0x30000
jne 0x14004ff52
cmp eax, 0xfeff
jg 0x14004fe6d
mov eax, dword [rbx + 0x19c]
jmp 0x14004fd23
test byte [rbx + 0x19f], 0x40
je 0x14004ff3f
mov rdi, qword [rax + 0xe0]
xor ebp, ebp
xor r13d, r13d
xor esi, esi
jmp 0x14004fe45
mov edx, esi
mov rcx, rdi
call fcn.1400b7640
test byte [rax + 0x1c], 0x20
cmovne r13, rax
test byte [rax + 0x28], 2
cmovne rbp, rax
add esi, 1
mov rcx, rdi
call fcn.1400b7630
cmp eax, esi
jg 0x14004fe28
mov rax, qword [rbx + 0x80]
test r13, r13
je 0x140050040
mov qword [rax + 0x3a0], r13
jmp 0x14004f900
mov dword [rsp + 0x20], 0x464
lea r9, str.s3_srvr.c
mov r8d, 0x10b
mov edx, 0x8a
mov ecx, 0x14
call fcn.1400ba710
mov eax, dword [rbx + 0x1ac]
mov r8d, 0x46
mov dword [rbx], eax
jmp 0x14004f5ea
mov qword [rsp + 0x38], rcx
mov r8d, 0xbb
lea r9, str.s3_srvr.c
mov edx, 0x8a
mov dword [rsp + 0x20], 0x4d0
mov ecx, 0x14
call fcn.1400ba710
mov r8d, 0x32
jmp 0x14004f5ea
mov r8, qword [rcx]
lea rdi, [rax + 0x10c]
mov rsi, rcx
and rdi, 0xfffffffffffffff8
mov qword [rax + 0x104], r8
mov r8, qword [rcx + r13 - 8]
mov qword [rdx + r13 - 8], r8
sub rdx, rdi
sub rsi, rdx
add edx, r13d
mov ecx, edx
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x14004fd93
mov r8d, 0x154
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x55a
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x50
jmp 0x14004f5ea
mov rax, qword [rax + 0xd0]
mov qword [rdx + 0x3a0], rax
jmp 0x14004f900
mov dword [rsp + 0x20], 0x45a
lea r9, str.s3_srvr.c
mov r8d, 0x183
jmp 0x14004fe82
mov dword [rbx], 0xfefd
call fcn.1400650c0
mov qword [rbx + 8], rax
jmp 0x14004fd3d
mov r8d, 0xe3
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x4d7
lea r9, str.s3_srvr.c
call fcn.1400ba710
jmp 0x14004f5f7
mov r8d, dword [rax + 0x204]
lea rdx, [rax + 4]
lea rcx, [rax + 0x104]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14004fdc9
mov dword [rsp + 0x20], 0x44c
mov r8d, 0x134
mov edx, 0x8a
mov ecx, 0x14
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x28
jmp 0x14004f5ea
mov dword [rbx + 0x28], 4
or r12d, 0xffffffff
jmp 0x14004f613
mov r8d, 0x44
mov edx, 0x8a
mov ecx, 0x14
mov dword [rsp + 0x20], 0x56e
lea r9, str.s3_srvr.c
call fcn.1400ba710
mov r8d, 0x50
jmp 0x14004f5ea
mov dword [rsp + 0x20], 0x442
jmp 0x14004ffd0
test rbp, rbp
je 0x140050071
mov qword [rax + 0x3a0], rbp
jmp 0x14004f900
mov r8d, dword [rcx]
mov dword [rax + 0x104], r8d
mov eax, dword [rcx + r13 - 4]
mov dword [rdx + r13 - 4], eax
mov rax, qword [rbx + 0x88]
jmp 0x14004fd9a
mov rdx, qword [rbx + 0x130]
mov rdx, qword [rdx + 0xd0]
mov qword [rax + 0x3a0], rdx
jmp 0x14004f900
movzx eax, word [rcx + r13 - 2]
mov word [rdx + r13 - 2], ax
mov rax, qword [rbx + 0x88]
jmp 0x14004fd9a
mov rcx, rbx
call fcn.140040880
mov rcx, rbx
mov r8, rax
mov rax, qword [rbx + 0x130]
mov rdx, qword [rax + 0xe0]
call fcn.14005c290
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x1400500db
mov dword [rsp + 0x20], 0x501
jmp 0x14004fc8a
mov rdx, qword [rbx + 0x130]
jmp 0x14004fb6a