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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x148
mov rax, qword [0x1403439c8]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rax, qword [rcx]
xor r10d, r10d
mov rbx, qword [rcx + 0x10]
mov rsi, r8
mov qword [rsp + 0xb0], r8
mov r13, rcx
mov word [rsp + 0x32], r9w
mov r8, rdx
mov rax, qword [rax]
mov ebp, r10d
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x78], rax
mov rdi, qword [rax]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x68], r10
cmp dword [rax + 0x30], r10d
je 0x14023451a
mov eax, dword [rax + 0x18]
jmp 0x140234f88
mov eax, dword [rbx + 0x38]
mov r9d, 0x100
mov dword [rsp + 0x70], eax
and al, 0x20
neg al
sbb edx, edx
and edx, 0xfffffe59
add edx, 0x1bf
test dword [rsi + 0x64], 0x104
je 0x14023455d
mov eax, dword [rsi + 0x64]
mov ecx, edx
and ecx, 0xffffffc3
and al, 4
cmove ecx, edx
mov edx, ecx
test dword [rsi + 0x64], r9d
je 0x14023455d
and edx, 0xffffff7c
movzx eax, word [rbx + 0x1a]
lea rcx, [rsp + 0xc0]
movzx r14d, word [rbx + 0x18]
movzx r12d, word [rbx + 0x3c]
mov r9d, r14d
mov r8d, dword [r8 + 0x44]
mov word [rsp + 0x4c], ax
movzx eax, word [rbx + 0x1c]
mov word [rsp + 0x4e], ax
movzx eax, word [rbx + 0x3e]
mov word [rsp + 0x50], ax
mov rax, qword [rbx]
mov qword [rsp + 0xa8], rax
movzx eax, word [rbx + 0x16]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], edx
mov rdx, qword [r13 + 8]
mov word [rsp + 0x38], ax
mov word [rsp + 0x30], r14w
mov word [rsp + 0x3a], r12w
call fcn.1402382dc
xor r11d, r11d
mov qword [rsp + 0xa0], rax
mov word [rbx + 0x12], r11w
mov r15, rax
mov rcx, qword [rsi + 0x10]
lea r9d, [r11 + 0xa]
movsx rax, word [rcx]
mov word [rsp + 0x60], ax
cmp ax, r9w
jg 0x1402345f5
mov word [rsp + 0x48], r11w
jmp 0x140234606
mov rcx, rax
call fcn.140204080
sub ax, 0x21
mov word [rsp + 0x48], ax
mov edx, 2
lea r10d, [rdx + 0xe]
mov r8d, 1
test r15, r15
je 0x140234e57
movzx edi, word [r15 + 0x14]
mov ecx, 0x100
mov eax, dword [r13 + 0x28]
mov word [rsp + 0x4a], di
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x94], eax
cmp di, cx
je 0x140234649
test byte [r15 + 0x12], 0x80
je 0x14023468e
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x140234679
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test byte [rax + rcx*8 + 8], 0xf
jne 0x140234e14
mov edx, 2
jmp 0x140234683
cmp r8d, 0xffffffff
je 0x140234e14
mov r8d, 1
mov ecx, 0x100
mov rax, qword [rbx + 8]
test qword [r15 + 0x28], rax
jne 0x140234e14
test word [r15 + 0x12], cx
je 0x1402346ad
cmp di, r10w
je 0x140234e14
mov r10, qword [rsp + 0x80]
test byte [r10 + 0x3c], 0x58
je 0x1402346ea
mov rcx, qword [r15]
mov eax, 3
test byte [rcx + 4], al
je 0x140234e14
mov eax, dword [r10 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x140234e14
test byte [r10 + 0x3c], 0x18
je 0x1402346ea
test byte [rcx + 4], dl
jne 0x140234e14
cmp byte [rsi + 0x62], r11b
je 0x140234705
movzx eax, word [rsi + 0x5e]
sub eax, r8d
movzx ecx, r14w
cmp ecx, eax
jne 0x140234705
or byte [r13 + 0x2c], dl
jmp 0x140234709
or byte [r13 + 0x2c], r8b
mov eax, dword [rsp + 0x70]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x1c], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3c], r12w
cmp r12w, word [rbx + 0x40]
jb 0x140234762
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
movzx r8d, r12w
inc r8d
call fcn.140236380
xor r11d, r11d
test eax, eax
jne 0x140234e52
mov r10, qword [rsp + 0x80]
lea r8d, [r11 + 1]
lea r9d, [r11 + 0xa]
movzx ecx, word [rbx + 0x3c]
movzx r12d, di
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], r15
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0xa8]
add dx, r8w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r15 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r12w, r8w
je 0x140234895
mov r8, qword [r15]
test dword [r8 + 4], 0x1000
je 0x1402347e8
movzx ecx, dx
mov r10d, 0x2e
dec ecx
mov dword [rsp + 0x34], r10d
test ecx, ecx
jle 0x140234809
mov rax, qword [rbx + 0x48]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x1402347d7
cmp qword [rcx], r8
cmove r10d, r11d
add rax, 8
sub rdx, 1
jne 0x1402347c8
mov dword [rsp + 0x34], r10d
jmp 0x140234809
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x140234804
cmp dword [rax], r11d
je 0x140234804
movsxd rcx, dword [rax]
call fcn.140204080
movsx r10d, ax
jmp 0x1402347e1
mov r10d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x14023487f
movzx r11d, word [rsp + 0x48]
cmp r11w, r9w
jl 0x14023487c
mov rax, qword [rsi + 0x10]
mov edi, 0xa
movzx ecx, r14w
movzx r9d, word [rax + rcx*2]
cmp r10w, di
jg 0x140234837
xor eax, eax
jmp 0x140234844
movsx rcx, r10w
call fcn.140204080
sub ax, 0x21
sub ax, r10w
sub ax, r11w
add ax, r9w
add ax, di
jns 0x14023487c
mov rdi, qword [rsp + 0x40]
mov eax, 2
cmp word [rsp + 0x32], ax
jge 0x140234e4a
test dword [rdi + 0x60], 0x20000
jne 0x140234e4a
bts dword [rbx + 0x38], 0x14
xor r11d, r11d
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
jmp 0x140234a31
test dil, 0x82
je 0x140234932
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r9d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r8d
mov dword [rbx + 0x38], ecx
cmp r9d, 0xffffffff
je 0x140234905
mov r8d, ecx
mov edx, ecx
test r9d, r9d
js 0x140234911
cmp word [rsp + 0x32], r11w
jne 0x140234911
movzx r9d, word [rsi + 0x5e]
mov ebp, 1
mov eax, r9d
movzx r10d, r14w
sub eax, ebp
cmp r10d, eax
jne 0x140234911
test byte [rsi + 0x64], 8
jne 0x140234905
cmp r9w, bp
jne 0x1402348ff
cmp byte [rsi + 0x62], r11b
je 0x1402348ff
lea eax, [rbp + 1]
cmp di, ax
je 0x140234905
bts edx, 0x10
jmp 0x14023490b
mov edx, ecx
bts edx, 0xc
mov r8d, edx
mov dword [rbx + 0x38], edx
mov eax, 1
cmp byte [rsp + 0xe9], al
jbe 0x140234886
mov edx, r8d
bts edx, 0x15
mov dword [rbx + 0x38], edx
jmp 0x140234886
bt di, 8
jae 0x14023494f
or dword [rbx + 0x38], 8
mov edx, dword [rbx + 0x38]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
jmp 0x140234a37
mov edx, dword [r10 + 0x44]
mov r8, rsi
mov rcx, qword [rsp + 0x78]
movzx r9d, r14w
mov qword [rsp + 0x20], r15
call fcn.1402380e4
mov edx, dword [rbx + 0x38]
xor r11d, r11d
test dil, 0x24
je 0x140234a00
or edx, 0x22
mov word [rbx + 0x1a], ax
mov eax, 0x100
mov dword [rbx + 0x38], edx
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x58], r11
test word [r15 + 0x12], ax
je 0x1402349f0
movzx r8d, word [rbx + 0x3c]
lea rax, [r15 + 0x38]
mov rdi, qword [rsp + 0x40]
inc r8d
mov rcx, rdi
mov qword [rsp + 0x58], rax
mov rdx, rbx
call fcn.140236380
xor r11d, r11d
test eax, eax
jne 0x140234e57
movzx ecx, word [rbx + 0x3c]
lea r8d, [r11 + 1]
mov rax, qword [rbx + 0x48]
mov r9, qword [rsp + 0x58]
mov qword [rax + rcx*8], r9
lea eax, [r11 + 0x10]
add word [rbx + 0x3c], r8w
or dword [rbx + 0x38], eax
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x1c], r8w
jmp 0x1402349f6
mov r8d, 1
mov rax, qword [rsp + 0x58]
mov rcx, r15
jmp 0x140234a37
or edx, 0x12
mov word [rbx + 0x1c], ax
mov dword [rbx + 0x38], edx
mov rax, r15
mov qword [rsp + 0x58], rax
test dl, 0x20
je 0x140234a29
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r15
jmp 0x140234a2c
mov rcx, r11
mov qword [rsp + 0x68], rcx
mov r8d, 1
test dl, 2
je 0x140234a59
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x78]
mov r9, rax
mov rdx, r13
call fcn.1402379a4
jmp 0x140234ceb
movzx eax, word [rbx + 0x18]
add ax, r8w
movzx r14d, ax
mov word [rbx + 0x18], r14w
movzx edx, word [r15 + 0x10]
mov dword [rsp + 0x90], r14d
test dx, dx
jg 0x140234aa4
movzx ecx, word [rsp + 0x30]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], r11w
jl 0x140234aa4
mov r15d, dword [rsp + 0x34]
sub dx, r15w
add word [rbx + 0x16], dx
movzx r14d, word [rsp + 0x30]
jmp 0x140234cf0
mov rdi, r11
mov qword [rsp + 0x88], r11
cmp word [rsp + 0x32], r11w
jne 0x140234cb5
cmp dword [rsi + 0x68], r11d
je 0x140234cb5
cmp r14d, dword [rsi + 0x70]
jg 0x140234cb5
test r12w, r12w
je 0x140234ae5
mov rax, qword [r15]
test dword [rax + 4], 0x1000
jne 0x140234cb5
mov rax, qword [rsp + 0x40]
test dword [rax + 0x60], 0x800
jne 0x140234cb5
mov rax, qword [r15]
mov ecx, 0x182
test word [rsp + 0x4a], cx
je 0x140234b2c
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov rdx, r13
call fcn.1402336c4
mov rdi, qword [rsp + 0x88]
jmp 0x140234bcf
mov r13, qword [rax + 0x20]
mov r11, qword [rsp + 0x98]
mov rax, qword [r11 + 0x10]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 0x10]
movzx ecx, word [rax]
call fcn.1402041f8
mov r12d, dword [r11 + 0x28]
lea r15, [r13 + 8]
xor ecx, ecx
mov r14, rax
mov eax, ecx
mov esi, ecx
mov ebp, ecx
cmp ebp, dword [r13]
jge 0x140234ba5
mov r8, qword [r15]
lea r9, [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov rdx, r11
mov qword [rsp + 0x88], r14
call fcn.1402336c4
mov r11, qword [rsp + 0x98]
inc ebp
add rsi, qword [rsp + 0x88]
add r15, 0x20
mov dword [r11 + 0x28], r12d
test eax, eax
je 0x140234b5f
jmp 0x140234baf
cmp rsi, r14
mov rdi, rsi
cmova rdi, r14
mov rsi, qword [rsp + 0xb0]
mov r14d, dword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x98]
xor r11d, r11d
cmp eax, 0xc
mov ebp, r11d
cmovne ebp, eax
test ebp, ebp
jne 0x140234e52
test rdi, rdi
je 0x140234cb5
lea edx, [rbp + 0x28]
movzx eax, dx
cmp rdi, 8
jae 0x140234c16
cmp rdi, 2
jae 0x140234c07
movzx eax, r11w
lea ecx, [rbp + 0xa]
jmp 0x140234c56
add ax, 0xfff6
add rdi, rdi
cmp rdi, 8
jb 0x140234c07
jmp 0x140234c40
mov ecx, 0xff
jmp 0x140234c24
add ax, dx
shr rdi, 4
cmp rdi, rcx
ja 0x140234c1d
cmp rdi, 0xf
jbe 0x140234c40
mov ecx, 0xa
add ax, cx
shr rdi, 1
cmp rdi, 0xf
ja 0x140234c34
and edi, 7
lea rcx, [0x14033e9d0]
add ax, word [rcx + rdi*2]
mov ecx, 0xa
sub ax, cx
mov r9d, 1
mov word [rbx + 0x16], ax
cmp r14w, r9w
jne 0x140234c91
movsx edx, ax
mov rax, qword [rsi + 0x10]
add edx, ecx
movsx ecx, word [rax]
cmp edx, ecx
jle 0x140234c91
mov eax, 0x4000
or word [r15 + 0x12], ax
mov eax, 0x2000
test word [r15 + 0x12], ax
je 0x140234c91
or byte [r13 + 0x2d], 4
movzx eax, word [rbx + 0x16]
cmp ax, word [rsp + 0x38]
mov r15d, dword [rsp + 0x34]
cmovg ax, word [rsp + 0x38]
movzx r14d, word [rsp + 0x30]
sub ax, r15w
mov word [rbx + 0x16], ax
jmp 0x140234cf6
mov rax, qword [rsi + 0x10]
movzx ecx, r14w
movzx r14d, word [rsp + 0x30]
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
mov ecx, 0x100
add dx, word [rbx + 0x16]
movzx eax, dx
mov word [rbx + 0x16], dx
test word [rsp + 0x4a], cx
je 0x140234ceb
add ax, 0xa
mov word [rbx + 0x16], ax
mov r15d, dword [rsp + 0x34]
mov r9d, 1
mov eax, dword [rsi + 0x64]
mov ecx, 3
movzx edi, word [rbx + 0x16]
and eax, ecx
lea r10d, [rcx + 0xd]
cmp al, cl
jne 0x140234d12
lea eax, [r10 + rdi]
jmp 0x140234d35
mov rcx, qword [rsp + 0x80]
movsx eax, word [rsi + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
add ax, di
add ax, r9w
movzx ecx, word [rsp + 0x48]
movzx edx, ax
call fcn.1402040e0
test dword [rbx + 0x38], 0x4000140
jne 0x140234d57
lea edx, [r10 + rdi]
movzx ecx, ax
call fcn.1402040e0
movzx r12d, word [rsp + 0x32]
add ax, r15w
movzx r8d, word [rsp + 0x60]
add ax, r12w
mov word [rbx + 0x14], ax
mov rdx, rbx
lea eax, [r15 + rdi]
add ax, r12w
mov word [rbx + 0x16], ax
mov rcx, qword [r13 + 8]
call fcn.1402361bc
mov rdx, rbx
mov rcx, r13
call fcn.140235fd8
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x38]
test r8b, dl
mov ebp, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x140234dfa
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x140234dfa
cmp cx, word [rsi + 0x5e]
jb 0x140234dcf
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x140234dfa
mov eax, 3
cmp cx, ax
jbe 0x140234de3
mov rcx, qword [rsp + 0x78]
call fcn.14020be2c
mov rdx, qword [rsp + 0x80]
lea r9d, [r12 + r15]
mov r8, rsi
mov rcx, r13
call fcn.140234498
movzx ecx, word [rsp + 0x38]
mov eax, dword [rsp + 0x94]
movzx r12d, word [rsp + 0x3a]
mov word [rbx + 0x16], cx
mov dword [r13 + 0x28], eax
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0xc0]
call fcn.1402383d0
xor r11d, r11d
mov qword [rsp + 0xa0], rax
mov r15, rax
lea edx, [r11 + 2]
lea r9d, [r11 + 0xa]
lea r10d, [r11 + 0x10]
test ebp, ebp
je 0x14023460f
jmp 0x140234e57
movzx r12d, word [rsp + 0x3a]
jmp 0x140234e19
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0xa8]
movzx r14d, word [rsp + 0x30]
movzx r12d, word [rsp + 0x38]
movzx edx, word [rsp + 0x3a]
mov r15d, dword [rsp + 0x70]
mov qword [rbx], rax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], ax
mov dword [rbx + 0x38], r15d
mov word [rbx + 0x16], r12w
mov word [rbx + 0x3c], dx
cmp r14w, ax
jne 0x140234f86
movzx ecx, word [rsi + 0x5e]
lea eax, [r14 + 1]
cmp eax, ecx
jae 0x140234f86
cmp r14w, dx
jne 0x140234f86
test byte [rsi + 0x64], 0x40
jne 0x140234f86
test byte [rsi + 0x64], 0x80
je 0x140234f86
mov eax, 0x4000
test dword [rdi + 0x60], eax
jne 0x140234f86
mov rax, qword [rsi + 0x10]
cmp word [rax + r14*2 + 2], 0x2a
jl 0x140234f86
mov rcx, qword [rsp + 0x40]
lea r8d, [rdx + 1]
mov rdx, rbx
call fcn.140236380
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x140234f86
movzx ecx, word [rbx + 0x3c]
lea r8d, [rax + 1]
add word [rbx + 0x18], r8w
add word [rbx + 0x3e], r8w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
mov rcx, r13
add word [rbx + 0x3c], r8w
mov r8, rsi
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x80]
movzx r10d, word [r9 + r14*2]
sub r10w, word [r9 + r14*2 + 2]
movzx r9d, word [rsp + 0x32]
sub word [rbx + 0x16], r10w
add r9w, 5
add r9w, r10w
call fcn.140234498
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x3e], ax
mov word [rbx + 0x16], r12w
mov word [rbx + 0x18], r14w
mov dword [rbx + 0x38], r15d
mov eax, ebp
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.14023fea0
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret