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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movdqa xmmword [rsp + 0x60], xmm6
mov rsi, r8
mov edi, edx
mov r13, rcx
mov r15, qword [rcx + 8]
mov r12, qword [r15]
cmp byte [rcx + 0x11], 0
je 0x41018b
add dword [r13 + 0x14], 1
cmp byte [r13 + 0x12], 0
je 0x410253
mov cl, byte [r13 + 0x10]
cmp cl, 2
je 0x410268
test edi, edi
setne al
cmp cl, 1
setne cl
test al, cl
jne 0x4101af
xor al, cl
je 0x410268
mov rax, qword [r13]
mov eax, dword [rax + 0x30]
not eax
or rax, 0xfffffffffdffffff
cmp rax, 0xffffffffffffffff
je 0x4101dc
cmp byte [r12 + 0x12], 0
jne 0x4101dc
mov eax, dword [r15 + 0x28]
mov ecx, eax
xor ecx, 1
and ecx, eax
mov word [r15 + 0x28], cx
test edi, edi
sete cl
mov eax, dword [r15 + 0x28]
mov edx, eax
xor edx, 0xfffe
test dx, ax
sete dl
or dl, cl
mov ebp, 8
cmp dl, 1
jne 0x410df3
test edi, edi
je 0x4102fd
cmp byte [r15 + 0x24], 2
sete cl
test al, al
sets dl
or dl, cl
cmp dl, 1
je 0x410301
cmp edi, 2
jl 0x410317
mov rcx, qword [r15 + 0x78]
test rcx, rcx
je 0x410317
mov rdx, qword [rcx]
cmp rdx, r13
jne 0x410308
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x410239
jmp 0x410317
mov rcx, r13
call fcn.0043e9d0
mov cl, byte [r13 + 0x10]
cmp cl, 2
jne 0x410198
test rsi, rsi
je 0x4102c0
mov rax, qword [r15 + 0x18]
mov rax, qword [rax + 0x50]
movzx ecx, byte [rax + 0x28]
shl ecx, 0x18
movzx edx, byte [rax + 0x29]
shl edx, 0x10
or edx, ecx
movzx ecx, byte [rax + 0x2a]
shl ecx, 8
mov ebp, edx
not ebp
mov ebx, ecx
not ebx
and ebp, 0xc5a32f46
and edx, 0x3a5c0000
or edx, ebp
and ebx, 0xc5a32f46
and ecx, 0xd000
or ecx, ebx
xor ecx, edx
movzx eax, byte [rax + 0x2b]
mov edx, ecx
and edx, eax
xor ecx, eax
or ecx, edx
mov dword [rsi], ecx
xor ebp, ebp
test edi, edi
je 0x410df3
mov rax, qword [r13]
mov edx, dword [rax + 0x2e8]
cmp dword [r12 + 0x80], edx
jge 0x410df3
cmp byte [r12 + 0xa], 0
je 0x410df3
mov rcx, r12
call fcn.0043fb10
mov ebp, eax
jmp 0x410df3
test al, al
jns 0x410317
mov rdx, qword [r15 + 0x80]
mov ebp, 0x106
cmp qword [rdx], 0
jne 0x410df3
cmp byte [r13 + 0x11], 0
je 0x410374
mov rcx, qword [r13 + 8]
cmp qword [rcx + 0x80], r13
je 0x410345
mov edx, dword [rcx + 0x28]
not edx
or edx, 0xffbf
mov ebp, 0x106
cmp dx, 0xffff
jne 0x410df3
mov rcx, qword [rcx + 0x78]
jmp 0x410354
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x410374
cmp qword [rcx], r13
je 0x410350
cmp dword [rcx + 8], 1
jne 0x410350
cmp byte [rcx + 0xc], 1
je 0x410350
mov ebp, 0x106
jmp 0x410df3
mov qword [rsp + 0x40], rsi
mov ecx, eax
xor ecx, 0x10
and ecx, eax
mov word [r15 + 0x28], cx
cmp dword [r15 + 0x40], 0
jne 0x4103b0
mov ecx, eax
not ecx
and ecx, 0xffffc7a4
mov edx, eax
and edx, 0x385b
or edx, ecx
xor edx, 0xffffc7b4
and eax, 0x10
or eax, edx
mov word [r15 + 0x28], ax
lea rax, [r15 + 0x34]
mov qword [rsp + 0x50], rax
xor ebp, ebp
movdqa xmm6, xmmword [0x005fa1c0]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x34], edi
cmp qword [r15 + 0x18], 0
mov eax, ebp
jne 0x410a50
jmp 0x410457
mov ebx, dword [r15 + 0x38]
xor edi, edi
mov r12, qword [rsp + 0x38]
mov ecx, ebx
shl ecx, 6
add ecx, 0xfffffd00
mov edx, 0x80808081
imul rcx, rdx
shr rcx, 0x27
add ecx, 0xffffffe9
mov word [r15 + 0x2a], cx
mov eax, ebx
shl eax, 5
add eax, 0xfffffe80
imul rax, rdx
shr rax, 0x27
add eax, 0xffffffe9
mov word [r15 + 0x2c], ax
add ebx, 0xffffffdd
mov word [r15 + 0x2e], bx
cmp cx, 0x7f
mov edx, 0x7f
cmovae ecx, edx
mov word [r15 + 0x30], ax
mov byte [r15 + 0x25], cl
mov qword [r15 + 0x18], r14
mov dword [r15 + 0x40], edi
test r14, r14
mov edi, dword [rsp + 0x34]
jne 0x410973
mov rcx, qword [r15]
call fcn.0043ecd0
test eax, eax
jne 0x41096c
mov rcx, qword [r15]
mov edx, 1
lea r8, [rsp + 0x58]
xor r9d, r9d
call qword [rcx + 0x110]
test eax, eax
jne 0x41096c
mov rax, qword [rsp + 0x58]
mov r14, qword [rax + 0x10]
cmp dword [r14 + 4], 1
jne 0x4104a0
mov rsi, qword [r14 + 0x50]
jmp 0x4104bd
mov rsi, qword [rax + 8]
mov qword [r14 + 0x50], rsi
mov qword [r14 + 0x70], rax
mov qword [r14 + 0x48], r15
mov dword [r14 + 4], 1
mov byte [r14 + 9], 0x64
movzx eax, byte [rsi + 0x1c]
shl eax, 0x18
movzx edx, byte [rsi + 0x1d]
shl edx, 0x10
mov ebp, edx
not ebp
mov ebx, eax
not ebx
and ebp, 0x18974ea7
and edx, 0x680000
or edx, ebp
and ebx, 0x18974ea7
and eax, 0xe7000000
or eax, ebx
xor eax, edx
movzx ebp, byte [rsi + 0x1e]
shl ebp, 8
mov edx, eax
not edx
mov ebx, ebp
not ebx
mov edi, edx
and edi, 0x70e2195e
and eax, 0x8f1d0000
or eax, edi
or edx, ebx
and ebx, 0x70e2195e
and ebp, 0xe600
or ebp, ebx
xor ebp, eax
not edx
or edx, ebp
movzx ebp, byte [rsi + 0x1f]
mov edi, edx
not edi
mov ebx, ebp
not ebx
mov eax, edi
and eax, 0x3131a50c
and edx, 0xcece5a52
or edx, eax
or edi, ebx
and ebx, 0x3131a50c
and ebp, 0xfffffff3
or ebp, ebx
xor ebp, edx
not edi
or edi, ebp
mov r12, qword [r15]
mov r8d, dword [r12 + 0x20]
je 0x410564
mov eax, dword [rsi + 0x18]
cmp eax, dword [rsi + 0x5c]
je 0x410567
mov edi, r8d
mov rax, qword [r15 + 8]
mov r9, qword [rax + 0x30]
mov edx, r9d
not edx
or rdx, 0xfffffffffdffffff
cmp rdx, 0xffffffffffffffff
sete dl
setne al
test edi, edi
setne bl
sete cl
xor cl, al
jne 0x4103e0
or bl, dl
je 0x4103e0
movdqu xmm0, xmmword [rsi]
pcmpeqb xmm0, xmm6
pmovmskb eax, xmm0
mov ebp, 0x1a
cmp eax, 0xffff
jne 0x4109b9
cmp byte [rsi + 0x12], 3
jb 0x4105e8
movzx eax, word [r15 + 0x28]
mov ecx, eax
not ecx
and ecx, 0xffffe414
mov edx, eax
and edx, 0x1beb
or edx, ecx
xor edx, 0xffffe415
and eax, 1
or eax, edx
mov word [r15 + 0x28], ax
cmp byte [rsi + 0x13], 2
ja 0x4109b9
jne 0x410620
mov eax, dword [r15 + 0x28]
mov ecx, eax
xor ecx, 0xffdf
test cx, ax
jne 0x410620
cmp byte [r12 + 0x10], 0
jne 0x410620
cmp qword [r12 + 0x128], 0
je 0x410888
movzx eax, word [rsi + 0x15]
xor eax, 0x2040
movzx ecx, byte [rsi + 0x17]
xor ecx, 0x20
or cx, ax
jne 0x4109b9
movzx eax, byte [rsi + 0x10]
shl eax, 8
movzx ecx, byte [rsi + 0x11]
shl ecx, 0x10
lea r13d, [rcx + rax]
lea edx, [rcx + rax]
add edx, 0xffffff
mov ebx, r13d
xor ebx, edx
not ebx
test ebx, edx
setne dl
add eax, ecx
add eax, 0xfffffeff
cmp eax, 0xfeff
seta bl
test bl, dl
jne 0x4109b9
xor bl, dl
jne 0x4109b9
movzx eax, word [r15 + 0x28]
mov ecx, eax
not ecx
and ecx, 0xffffc2a5
mov edx, eax
and edx, 0x3d5a
or edx, ecx
xor edx, 0xffffc2a7
and eax, 2
or eax, edx
mov word [r15 + 0x28], ax
movzx r12d, byte [rsi + 0x14]
mov ebx, r13d
sub ebx, r12d
cmp r13d, dword [r15 + 0x34]
jne 0x4107b6
cmp edi, r8d
jbe 0x4106db
mov rax, r9
xor rax, 0xffffffffeffffffe
and rax, r9
mov edi, r8d
cmp rax, 1
jne 0x41098a
cmp ebx, 0x1e0
jb 0x4109b9
mov dword [r15 + 0x34], r13d
mov dword [r15 + 0x38], ebx
movzx eax, byte [rsi + 0x34]
shl eax, 0x18
movzx ecx, byte [rsi + 0x35]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsi + 0x36]
shl eax, 8
mov edx, ecx
not edx
mov ebp, eax
not ebp
and edx, 0xaa3b89bb
and ecx, 0x55c40000
or ecx, edx
and ebp, 0xaa3b89bb
and eax, 0x7600
or eax, ebp
xor eax, ecx
movzx ecx, byte [rsi + 0x37]
mov edx, eax
and edx, ecx
xor eax, ecx
or eax, edx
setne byte [r15 + 0x21]
movzx eax, byte [rsi + 0x40]
shl eax, 0x18
movzx ecx, byte [rsi + 0x41]
shl ecx, 0x10
or ecx, eax
movzx edx, byte [rsi + 0x42]
shl edx, 8
mov eax, ecx
not eax
mov ebp, edx
not ebp
and eax, 0x445d3c46
and ecx, 0xbba20000
or ecx, eax
and ebp, 0x445d3c46
and edx, 0xc300
or edx, ebp
xor edx, ecx
movzx eax, byte [rsi + 0x43]
mov ecx, edx
not ecx
mov ebp, eax
not ebp
mov esi, ecx
and esi, 0x5aed250d
and edx, 0xa512da00
or edx, esi
or ecx, ebp
and ebp, 0x5aed250d
and eax, 0xfffffff2
or eax, ebp
xor eax, edx
not ecx
or ecx, eax
setne byte [r15 + 0x22]
mov r13, qword [rsp + 0x48]
jmp 0x4103e6
mov rcx, qword [r14 + 0x70]
mov rbp, qword [rcx + 0x28]
call fcn.00430480
mov rax, qword [rbp + 0x120]
cmp dword [rax + 0x18], 0
jne 0x410821
movzx eax, byte [rbp + 0x15]
test al, al
je 0x410819
cmp al, 6
je 0x410819
cmp al, 2
jb 0x410806
mov rax, qword [0x0213b518]
test rax, rax
je 0x4107ee
call rax
mov rcx, rbp
call fcn.004382b0
mov rax, qword [0x0213b520]
test rax, rax
je 0x410819
call rax
jmp 0x410819
cmp byte [rbp + 8], 0
jne 0x410819
mov rcx, rbp
xor edx, edx
xor r8d, r8d
call fcn.004383c0
mov rcx, rbp
call fcn.00438cd0
mov dword [r15 + 0x38], ebx
mov dword [r15 + 0x34], r13d
mov rcx, qword [r15 + 0x88]
test rcx, rcx
je 0x410850
add rcx, 0xfffffffffffffffc
mov qword [r15 + 0x88], rcx
call fcn.004378f0
mov qword [r15 + 0x88], 0
mov rcx, qword [r15]
mov rdx, qword [rsp + 0x50]
mov r8d, r12d
call fcn.00432430
test eax, eax
mov r13, qword [rsp + 0x48]
jne 0x41097a
mov r14, qword [r15 + 0x18]
mov r12, qword [rsp + 0x38]
test r14, r14
mov edi, dword [rsp + 0x34]
je 0x410457
jmp 0x410973
mov ebp, 0xe
cmp byte [r12 + 0x11], 0
jne 0x4109b9
cmp byte [r12 + 8], 0
jne 0x4108bd
mov rax, qword [r12 + 0x48]
mov rax, qword [rax]
cmp dword [rax], 2
jl 0x4109b9
cmp qword [rax + 0x68], 0
je 0x4109b9
mov rbx, qword [r12 + 0x50]
mov rax, qword [rbx]
test rax, rax
je 0x4108d7
mov rcx, rbx
call qword [rax + 8]
mov qword [rbx], 0
mov rcx, r12
call fcn.0043f660
test eax, eax
mov r13, qword [rsp + 0x48]
jne 0x410a3e
mov byte [r12 + 9], 5
mov byte [r12 + 0x15], 0
mov rcx, qword [r14 + 0x70]
mov rbx, qword [rcx + 0x28]
call fcn.00430480
mov rax, qword [rbx + 0x120]
cmp dword [rax + 0x18], 0
jne 0x41086d
movzx eax, byte [rbx + 0x15]
test al, al
je 0x41095f
cmp al, 6
je 0x41095f
cmp al, 2
jb 0x41094c
mov rax, qword [0x0213b518]
test rax, rax
je 0x410934
call rax
mov rcx, rbx
call fcn.004382b0
mov rax, qword [0x0213b520]
test rax, rax
je 0x41095f
call rax
jmp 0x41095f
cmp byte [rbx + 8], 0
jne 0x41095f
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.004383c0
mov rcx, rbx
call fcn.00438cd0
jmp 0x41086d
mov ebp, eax
jmp 0x410cea
xor eax, eax
jmp 0x410a50
mov ebp, eax
mov r12, qword [rsp + 0x38]
mov edi, dword [rsp + 0x34]
jmp 0x410cea
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ebp, 0xb
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x111cc
call fcn.00408970
mov rcx, qword [r14 + 0x70]
mov rbx, qword [rcx + 0x28]
call fcn.00430480
mov rax, qword [rbx + 0x120]
cmp dword [rax + 0x18], 0
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
mov edi, dword [rsp + 0x34]
jne 0x410a31
mov al, byte [rbx + 0x15]
test al, al
je 0x410a29
cmp al, 6
je 0x410a29
cmp al, 2
jb 0x410a16
mov rax, qword [0x0213b518]
test rax, rax
je 0x4109fe
call rax
mov rcx, rbx
call fcn.004382b0
mov rax, qword [0x0213b520]
test rax, rax
je 0x410a29
call rax
jmp 0x410a29
cmp byte [rbx + 8], 0
jne 0x410a29
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.004383c0
mov rcx, rbx
call fcn.00438cd0
mov qword [r15 + 0x18], 0
jmp 0x410cea
mov ebp, eax
jmp 0x4109b9
test edi, edi
setne cl
test eax, eax
setne dl
cmp cl, dl
je 0x410ce0
test edi, edi
je 0x410ce0
mov eax, dword [r15 + 0x28]
mov ecx, eax
xor ecx, 0xfffe
mov ebp, 8
test cx, ax
jne 0x410cea
mov eax, dword [r12 + 0x30]
test eax, eax
je 0x410aa5
cmp eax, 0x205
je 0x410c71
test eax, eax
je 0x410cd8
jmp 0x410ce0
mov rax, qword [r13]
cmp byte [rax + 0x66], 2
sete byte [r12 + 0x1a]
cmp byte [r12 + 0x15], 1
jne 0x410cd8
mov rsi, qword [r12 + 0x128]
test rsi, rsi
je 0x410b0a
cmp byte [r12 + 8], 0
je 0x410c21
cmp byte [rsi + 0x3f], 0
jne 0x410c21
lea rbx, [rsi + 0x3f]
mov al, byte [r12 + 0x16]
cmp al, 4
jae 0x410bbf
cmp byte [r12 + 0x11], 0
je 0x410bc9
mov byte [r12 + 0x16], 4
jmp 0x410bf9
mov al, byte [r12 + 0x16]
cmp al, 5
ja 0x410b36
movzx ecx, al
mov edx, 0x23
bt edx, ecx
jae 0x410b36
cmp byte [r12 + 0x11], 0
je 0x410b93
cmp al, 5
mov al, 5
je 0x410b36
mov byte [r12 + 0x16], 2
mov al, 2
cmp edi, 2
jl 0x410cb5
cmp al, 4
jae 0x410b8a
cmp byte [r12 + 0x11], 0
jne 0x410caf
mov rcx, qword [r12 + 0x48]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x38]
cmp eax, 5
jne 0x410ca7
mov rcx, qword [r12 + 0xf0]
call qword [r12 + 0xe8]
test eax, eax
je 0x410ddf
movzx eax, byte [r12 + 0x16]
cmp al, 4
jb 0x410b43
cmp al, 5
je 0x410b43
jmp 0x410cb5
mov rcx, qword [r12 + 0x48]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x38]
test eax, eax
jne 0x410a8d
mov al, byte [r12 + 0x16]
cmp al, 5
mov al, 5
jne 0x410b2e
jmp 0x410b36
cmp al, 5
je 0x410af3
jmp 0x410bf9
mov rcx, qword [r12 + 0x48]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x38]
test eax, eax
jne 0x410a8d
mov rsi, qword [r12 + 0x128]
lea rbx, [rsi + 0x3f]
cmp byte [rsi + 0x3f], 0
mov byte [r12 + 0x16], 4
jne 0x410c1e
movsx edx, word [rsi + 0x3c]
add edx, 3
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r8d, 1
mov r9d, 5
call qword [rax + 0x70]
mov rsi, qword [r12 + 0x128]
mov byte [rbx], 1
cmp byte [rsi + 0x42], 0
jne 0x410cea
cmp byte [rsi + 0x3f], 0
je 0x410c85
mov byte [rsi + 0x40], 1
mov rax, qword [rsi + 0x30]
mov rdx, qword [rax]
lea rcx, [rsi + 0x48]
mov r8d, 0x30
call fcn.005f4c28
test eax, eax
je 0x410cb5
cmp byte [rsi + 0x3f], 0
jne 0x410c6d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
mov r8d, 1
mov r9d, 9
call qword [rax + 0x70]
mov byte [rsi + 0x40], 0
mov al, byte [r15 + 0x24]
xor ebp, ebp
test al, al
setne bpl
shl ebp, 9
or ebp, 5
jmp 0x410cee
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
xor edx, edx
mov r8d, 1
mov r9d, 0xa
call qword [rax + 0x70]
test eax, eax
jne 0x410a8d
jmp 0x410c31
test eax, eax
jne 0x410a8d
mov byte [r12 + 0x16], 4
mov byte [r12 + 0x15], 2
mov eax, dword [r12 + 0x20]
mov dword [r12 + 0x2c], eax
mov dword [r12 + 0x28], eax
mov dword [r12 + 0x24], eax
mov qword [r12 + 0x60], 0
mov rcx, r15
call fcn.0043eaa0
mov ebp, eax
test eax, eax
je 0x410e21
mov al, byte [r15 + 0x24]
test al, al
je 0x410d5b
mov eax, ebp
not eax
or eax, 0xffffff00
cmp eax, 0xfffffffa
jne 0x410df3
cmp byte [r15 + 0x24], 0
jne 0x410df3
mov rsi, qword [r15 + 8]
mov rbx, qword [rsi + 0x280]
test rbx, rbx
je 0x410df3
mov edx, dword [rsi + 0x290]
test edx, edx
js 0x410df3
mov rcx, qword [rsi + 0x288]
call rbx
test eax, eax
je 0x410de9
add dword [rsi + 0x290], 1
cmp qword [r15 + 0x18], 0
mov eax, ebp
jne 0x410a50
jmp 0x410457
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x410cf2
mov qword [r15 + 0x18], 0
mov rcx, qword [rax + 0x70]
mov rbx, qword [rcx + 0x28]
call fcn.00430480
mov rax, qword [rbx + 0x120]
cmp dword [rax + 0x18], 0
jne 0x410cf2
mov al, byte [rbx + 0x15]
test al, al
je 0x410dd2
cmp al, 6
je 0x410dd2
cmp al, 2
jb 0x410dbf
mov rax, qword [0x0213b518]
test rax, rax
je 0x410da7
call rax
mov rcx, rbx
call fcn.004382b0
mov rax, qword [0x0213b520]
test rax, rax
je 0x410dd2
call rax
jmp 0x410dd2
cmp byte [rbx + 8], 0
jne 0x410dd2
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.004383c0
mov rcx, rbx
call fcn.00438cd0
jmp 0x410cf2
mov ebp, 5
jmp 0x410cea
mov dword [rsi + 0x290], 0xffffffff
cmp byte [r13 + 0x11], 0
je 0x410e09
add dword [r13 + 0x14], 0xffffffff
jne 0x410e09
mov rcx, r13
call fcn.0043ea70
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r13 + 0x10], 0
jne 0x410e49
add dword [r15 + 0x3c], 1
cmp byte [r13 + 0x11], 0
je 0x410e49
lea rax, [r13 + 0x30]
mov byte [r13 + 0x3c], 1
mov rcx, qword [r15 + 0x78]
mov qword [r13 + 0x40], rcx
mov qword [r15 + 0x78], rax
cmp edi, 1
mov al, 1
sbb al, 0xff
mov byte [r13 + 0x10], al
cmp al, byte [r15 + 0x24]
mov rsi, qword [rsp + 0x40]
jbe 0x410e63
mov byte [r15 + 0x24], al
test edi, edi
je 0x410268
mov r14, qword [r15 + 0x18]
mov qword [r15 + 0x80], r13
mov eax, dword [r15 + 0x28]
mov ecx, eax
xor ecx, 0x40
and ecx, eax
xor eax, eax
cmp edi, 1
setg al
shl eax, 6
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov word [r15 + 0x28], ax
mov eax, dword [r15 + 0x40]
mov rdx, qword [r14 + 0x50]
movzx ecx, byte [rdx + 0x1c]
shl ecx, 0x18
movzx ebp, byte [rdx + 0x1d]
shl ebp, 0x10
mov ebx, ebp
not ebx
mov esi, ecx
not esi
and ebx, 0x3df4cb23
and ebp, 0xb0000
or ebp, ebx
and esi, 0x3df4cb23
and ecx, 0xc2000000
or ecx, esi
mov rsi, qword [rsp + 0x40]
xor ecx, ebp
movzx ebp, byte [rdx + 0x1e]
shl ebp, 8
or ebp, ecx
movzx ecx, byte [rdx + 0x1f]
mov ebx, ebp
and ebx, ecx
xor ebp, ecx
or ebp, ebx
cmp eax, ebp
je 0x410268
mov rcx, qword [r14 + 0x70]
mov rbx, qword [rcx + 0x28]
mov esi, dword [rcx + 0x34]
mov ebp, esi
xor ebp, 0xfffb
test bp, si
je 0x410f17
mov ebp, dword [rbx + 0x20]
cmp ebp, dword [rcx + 0x30]
jae 0x410f3c
mov ebp, dword [rbx + 0x30]
test ebp, ebp
mov rsi, qword [rsp + 0x40]
jne 0x410df3
mov eax, dword [rbx + 0xb8]
cmp eax, dword [rbx + 0xc8]
jbe 0x410f51
call fcn.0043fc70
jmp 0x410f56
cmp dword [rbx + 0x80], 0
mov rsi, qword [rsp + 0x40]
je 0x410f68
call fcn.00432ba0
jmp 0x410f56
call fcn.00440110
mov ebp, eax
test eax, eax
jne 0x410df3
mov rdx, qword [r14 + 0x50]
mov eax, dword [r15 + 0x40]
bswap eax
mov dword [rdx + 0x1c], eax
jmp 0x410268