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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov rax, qword [rcx]
mov rax, qword [rax]
mov r11d, dword [rax + 0x30]
mov word [rsp + 0x62], r9w
mov r15, rcx
mov r13, r8
mov qword [rsp + 0x188], rdx
mov dword [rsp + 0xbc], r9d
mov qword [rsp + 0x58], rax
test r11d, r11d
jne 0x4586c0
mov rbx, qword [rcx + 0x10]
mov rsi, rax
lea rbp, [rsp + 0xc0]
mov rsi, qword [rsi]
movzx edi, word [rbx + 0x1a]
mov eax, dword [rbx + 0x38]
mov qword [rsp + 0x98], rsi
movzx esi, word [rbx + 0x18]
mov word [rsp + 0xb8], di
movzx edi, word [rbx + 0x1c]
mov dword [rsp + 0x64], eax
and eax, 0x20
mov r9d, esi
mov word [rsp + 0xa8], di
mov rdi, qword [rbx + 0x16]
cmp eax, 1
sbb edx, edx
mov word [rsp + 0x4e], si
mov qword [rsp + 0x90], rdi
movzx edi, word [rbx + 0x3e]
and edx, 0x183
cmp eax, 1
sbb eax, eax
mov dword [rsp + 0x74], esi
mov word [rsp + 0xaa], di
mov rdi, qword [rbx + 0x38]
and eax, 0x1a7
add eax, 0x18
test byte [r8 + 0x64], 4
mov qword [rsp + 0x88], rdi
movzx edi, word [rbx + 0x3c]
cmovne eax, edx
mov rdx, qword [rcx + 8]
mov rcx, rbp
mov word [rsp + 0x60], di
mov rdi, qword [rbx]
mov qword [rsp + 0x50], rdi
movzx edi, word [rbx + 0x16]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x28], r8
mov r8d, dword [rax + 0x44]
mov word [rsp + 0x4a], di
call fcn.00457bf0
xor r9d, r9d
xor r10d, r10d
mov r11, rax
mov rax, qword [r13 + 0x10]
mov word [rbx + 0x12], r9w
mov word [rsp + 0x4c], r10w
movsx rsi, word [rax]
mov dword [rsp + 0x70], esi
mov rax, rsi
cmp si, 0xa
jg 0x4584b0
test r11, r11
je 0x458990
movzx eax, word [rsp + 0x4e]
mov qword [rsp + 0x30], rbp
lea r14, [0x00625d40]
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x80], rax
add rax, rax
mov qword [rsp + 0x38], rax
movzx eax, word [rsp + 0x60]
mov qword [rsp + 0x78], 0
add eax, 8
mov esi, eax
and eax, 0x1fff8
shl rax, 3
and esi, 0xfffffff8
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xac], esi
mov rsi, r11
nop dword [rax + rax]
movzx edi, word [rsi + 0x14]
cmp di, 0x100
je 0x457e99
test byte [rsi + 0x12], 0x80
je 0x457ebb
mov rax, qword [r13 + 8]
mov rcx, qword [rsp + 0x38]
movsx rdx, word [rax + rcx]
mov rax, rdx
test edx, edx
jns 0x458078
cmp edx, 0xffffffff
je 0x458008
mov rax, qword [rsi + 0x28]
mov rdx, qword [rbx + 8]
test rax, rdx
jne 0x458008
cmp di, 0x10
sete bpl
and bpl, byte [rsi + 0x13]
jne 0x458680
mov rcx, qword [rsp + 0x188]
movzx ecx, byte [rcx + 0x3c]
test cl, 0x58
je 0x457f20
mov r8, qword [rsi]
mov r9d, dword [r8 + 4]
test r9b, 3
je 0x458008
mov r11, qword [rsp + 0x188]
mov r11d, dword [r11 + 0x44]
cmp dword [r8 + 0x34], r11d
jne 0x458008
and ecx, 0x18
jne 0x457ff8
nop
cmp byte [r13 + 0x62], 0
movzx ecx, byte [r15 + 0x20]
je 0x457f40
movzx r8d, word [r13 + 0x5e]
sub r8d, 1
cmp dword [rsp + 0x74], r8d
je 0x458690
or ecx, 1
mov byte [r15 + 0x20], cl
mov ecx, dword [rsp + 0x64]
movzx r8d, word [rsp + 0x60]
mov dword [rbx + 0x38], ecx
movzx ecx, word [rsp + 0x4e]
mov word [rbx + 0x3c], r8w
mov word [rbx + 0x18], cx
movzx ecx, word [rsp + 0xb8]
mov word [rbx + 0x1a], cx
movzx ecx, word [rsp + 0xa8]
mov word [rbx + 0x1c], cx
cmp word [rbx + 0x40], r8w
ja 0x4580a0
mov r12, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov rcx, r12
call fcn.0042cd60
mov rbp, rax
test rax, rax
je 0x458990
movzx r8d, word [rbx + 0x40]
mov rdx, qword [rbx + 0x48]
mov rcx, rax
shl r8, 3
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbx + 0x48]
lea rax, [rbx + 0x58]
cmp rdx, rax
je 0x457fd3
mov rcx, r12
call fcn.004235b0
movzx eax, word [rsp + 0xac]
movzx r8d, word [rbx + 0x3c]
mov qword [rbx + 0x48], rbp
mov rdx, qword [rbx + 8]
mov word [rbx + 0x40], ax
mov rax, qword [rsi + 0x28]
jmp 0x4580a4
and r9d, 2
je 0x457f20
nop word [rax + rax]
xor r12d, r12d
mov ebp, 1
mov rcx, qword [rsp + 0x30]
call fcn.00457490
mov rsi, rax
test rax, rax
je 0x45802b
test bpl, bpl
jne 0x457e88
mov rax, qword [rsp + 0x50]
movzx esi, word [rsp + 0xaa]
mov qword [rbx], rax
mov rax, qword [rsp + 0x90]
mov qword [rbx + 0x16], rax
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0x38], rax
cmp word [rsp + 0x4e], si
je 0x4584e8
mov eax, r12d
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [r13 + 0x18]
lea rax, [rax + rax*2]
mov r8, qword [rdx + 8]
lea rax, [r8 + rax*8]
test byte [rax + 8], 0xf
je 0x457ebb
jmp 0x458008
mov rbp, qword [rbx + 0x48]
or rax, qword [rsp + 0x50]
not rdx
lea ecx, [r8 + 1]
and rax, rdx
mov word [rbx + 0x3c], cx
mov qword [rbp + r8*8], rsi
mov qword [rbx], rax
mov eax, edi
and ax, 1
mov word [rsp + 0x44], ax
je 0x4582f8
movzx edx, byte [r13 + 0x64]
mov r9, qword [rsi]
shr dl, 7
cmp word [rsp + 0x4c], 9
setg al
and edx, eax
test byte [r9 + 5], 0x10
jne 0x4586d0
mov rax, qword [r9 + 0x20]
test rax, rax
je 0x458138
movsxd rax, dword [rax]
test eax, eax
je 0x458138
cmp rax, 7
ja 0x4588b0
mov ecx, 0x1e
cmp rax, 1
je 0x458d2b
nop word [rax + rax]
add rax, rax
mov r9d, ecx
sub ecx, 0xa
cmp rax, 7
jbe 0x458120
jmp 0x4588cc
test dl, dl
jne 0x458938
xor edx, edx
mov eax, dword [rbx + 0x38]
mov word [rsp + 0x44], dx
mov r8d, eax
movzx ecx, word [rbx + 0x16]
and eax, 2
or r8d, 4
mov dword [rbx + 0x38], r8d
test eax, eax
jne 0x458398
movzx eax, word [rbx + 0x18]
movzx edx, word [rsi + 0x10]
add eax, 1
mov word [rbx + 0x18], ax
test dx, dx
jle 0x458630
mov rdx, qword [r13 + 0x10]
movzx eax, ax
add cx, word [rdx + rax*2]
sub cx, word [rdx + rax*2 - 2]
test di, 0x100
je 0x458196
add ecx, 0xa
mov esi, ecx
movzx eax, byte [r13 + 0x64]
and eax, 3
cmp al, 3
je 0x45843a
movsx r9d, word [r13 + 0x5c]
mov rdi, qword [rsp + 0x188]
movsx r10d, word [rsp + 0x4c]
mov rdx, qword [rdi + 0x20]
mov eax, r9d
shl eax, 4
sub eax, r9d
movsx r9d, word [rdx + 0x3c]
cdq
idiv r9d
lea eax, [rcx + rax + 1]
mov edx, eax
movsx r9d, ax
cmp ax, r10w
jg 0x458453
lea eax, [r9 + 0x31]
mov edx, r10d
cmp r10d, eax
jg 0x458218
lea eax, [r9 + 0x1f]
lea edx, [r10 + 1]
cmp r10d, eax
jg 0x458218
sub r10d, r9d
lea rax, str._n_n_t_t_b_b_a_a_a
movsxd r10, r10d
movzx edx, byte [rax + r10]
add dx, word [rsp + 0x4c]
nop dword [rax]
and r8d, 0x4000140
mov eax, edx
jne 0x458258
lea eax, [rcx + 0x10]
movsx r9d, dx
movsx r8d, ax
cmp ax, dx
jg 0x458658
mov eax, edx
lea edx, [r8 + 0x31]
cmp r9d, edx
jg 0x458258
lea edx, [r8 + 0x1f]
cmp r9d, edx
jle 0x458860
add eax, 1
nop word [rax + rax]
movzx edi, word [rsp + 0x44]
add di, word [rsp + 0x62]
mov rdx, rbx
add eax, edi
add ecx, edi
mov r8d, dword [rsp + 0x70]
mov word [rbx + 0x14], ax
mov word [rbx + 0x16], cx
mov rcx, qword [r15 + 8]
call fcn.00414ce0
mov rdx, rbx
mov rcx, r15
call fcn.0044d750
mov r12d, eax
mov eax, dword [rbx + 0x38]
test al, 2
cmovne si, word [rsp + 0x4a]
mov word [rbx + 0x16], si
test al, 0x10
jne 0x4582e0
movzx eax, word [rbx + 0x18]
cmp ax, word [r13 + 0x60]
jae 0x4582e0
cmp ax, word [r13 + 0x5e]
jb 0x4582bf
movzx edx, byte [r13 + 0x64]
and edx, 3
cmp dl, 2
je 0x4582e0
cmp ax, 3
ja 0x4589a0
mov rdx, qword [rsp + 0x188]
movsx r9d, di
mov r8, r13
mov rcx, r15
call fcn.00457ce0
movzx eax, word [rsp + 0x4a]
test r12d, r12d
sete bpl
mov word [rbx + 0x16], ax
jmp 0x458010
test dil, 0x82
je 0x458478
mov rax, qword [r13 + 8]
mov rcx, qword [rsp + 0x38]
movsx eax, word [rax + rcx]
mov ecx, dword [rbx + 0x38]
mov edx, ecx
or edx, 1
mov dword [rbx + 0x38], edx
cmp eax, 0xffffffff
je 0x458770
test eax, eax
js 0x458368
cmp word [rsp + 0x62], 0
jne 0x458368
movzx eax, word [r13 + 0x5e]
mov r8d, eax
sub eax, 1
cmp dword [rsp + 0x74], eax
jne 0x458368
test byte [r13 + 0x64], 8
jne 0x458770
cmp r8w, 1
je 0x458758
or ecx, 0x10001
mov dword [rbx + 0x38], ecx
mov edx, ecx
nop dword [rax]
cmp byte [rsp + 0xe9], 1
movzx ecx, word [rbx + 0x16]
jbe 0x458730
mov r8d, edx
mov eax, edx
or r8d, 0x200000
and eax, 2
mov dword [rbx + 0x38], r8d
test eax, eax
je 0x458164
nop dword [rax]
xor edx, edx
cmp qword [rsp + 0x68], 0
movsx eax, cx
je 0x4583c6
mov rsi, qword [rsp + 0x68]
movzx edx, word [rsi + 0x10]
test dx, dx
jle 0x458740
mov edx, 1
test byte [rsi + 0x12], 0x80
je 0x4588a0
cmp qword [rsp + 0x78], 0
je 0x45840e
mov rsi, qword [rsp + 0x78]
movzx r9d, word [rsi + 0x10]
test r9w, r9w
jle 0x458750
lea r10d, [rcx - 0x14]
test byte [rsi + 0x12], 0x80
cmove ecx, r10d
mov rsi, qword [rsp + 0x68]
add edx, 1
test rsi, rsi
je 0x45840e
cmp word [rsi + 0x10], 0
jle 0x45840e
lea r10d, [rcx - 0x14]
test r9w, r9w
cmovg ecx, r10d
sub eax, edx
cmp cx, 0xa
mov edx, 0xa
cmovl ecx, edx
movsx ecx, cx
cmp ecx, eax
cmovg ecx, eax
mov word [rbx + 0x16], cx
movzx eax, byte [r13 + 0x64]
mov esi, ecx
and eax, 3
cmp al, 3
jne 0x4581a8
movsx r10d, word [rsp + 0x4c]
lea eax, [rcx + 0x10]
mov edx, eax
movsx r9d, ax
cmp ax, r10w
jle 0x4581e5
lea r11d, [r10 + 0x31]
cmp r9d, r11d
jg 0x458218
lea edx, [r10 + 0x1f]
cmp r9d, edx
jle 0x4586a0
lea edx, [rax + 1]
jmp 0x458218
mov eax, edi
and ax, 0x100
mov word [rsp + 0x44], ax
je 0x458780
mov eax, dword [rbx + 0x38]
xor edx, edx
movzx ecx, word [rbx + 0x16]
mov word [rsp + 0x44], dx
mov r8d, eax
and eax, 2
or r8d, 8
mov dword [rbx + 0x38], r8d
jmp 0x45815c
bsr rdx, rsi
mov ecx, 0x3c
xor rdx, 0x3f
sub ecx, edx
lea rdx, [0x0061f5f0]
shr rax, cl
lea ecx, [rcx + rcx*4]
and eax, 7
movzx eax, word [rdx + rax*2]
lea eax, [rax + rcx*2 - 3]
mov word [rsp + 0x4c], ax
jmp 0x457e1f
mov eax, dword [rsp + 0x74]
movzx edx, word [r13 + 0x5e]
add eax, 1
cmp eax, edx
jge 0x45805e
movzx edi, word [rsp + 0x60]
cmp word [rsp + 0x4e], di
jne 0x45805e
movzx eax, byte [r13 + 0x64]
and eax, 0xffffffc0
cmp al, 0x80
jne 0x45805e
mov rcx, qword [rsp + 0x98]
test byte [rcx + 0x61], 0x40
jne 0x45805e
movzx edx, word [rsp + 0x4e]
mov rax, qword [r13 + 0x10]
lea rsi, [rdx + rdx + 2]
lea r9, [rax + rsi]
cmp word [r9], 0x29
jle 0x45805e
movzx r8d, di
movzx edx, word [rbx + 0x40]
add r8d, 1
cmp r8d, edx
jle 0x458dbd
mov rdx, rbx
call fcn.0044d540
mov r12d, eax
test eax, eax
jne 0x45805e
movzx eax, word [rbx + 0x3c]
movzx ecx, word [rbx + 0x18]
movzx edx, word [rbx + 0x3e]
mov r8d, dword [rbx + 0x38]
mov word [rsp + 0x60], ax
mov rax, qword [r13 + 0x10]
movzx r10d, word [rbx + 0x16]
lea r9, [rax + rsi]
movzx edi, word [rsp + 0x60]
add ecx, 1
add edx, 1
xor r12d, r12d
mov word [rbx + 0x18], cx
mov rcx, qword [rbx + 0x48]
or r8d, 0x8000
mov word [rbx + 0x3e], dx
lea edx, [rdi + 1]
mov word [rbx + 0x3c], dx
movzx edx, di
movzx eax, word [rax + rsi - 2]
mov qword [rcx + rdx*8], 0
movzx ecx, word [r9]
movzx edi, word [rsp + 0xbc]
mov dword [rbx + 0x38], r8d
mov r8, r13
lea edx, [r10 + rcx]
sub edx, eax
lea eax, [rax + rdi + 5]
mov word [rbx + 0x16], dx
sub eax, ecx
mov rdx, qword [rsp + 0x188]
mov rcx, r15
movsx r9d, ax
call fcn.00457ce0
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0xaa]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
jmp 0x45805e
mov r9, qword [r13 + 8]
mov rsi, qword [rsp + 0x38]
cmp word [r9 + rsi], 0
js 0x45817c
sub cx, word [rsp + 0x44]
add ecx, edx
mov esi, ecx
jmp 0x458198
lea edx, [r9 + 0x31]
cmp r8d, edx
jg 0x458258
lea edx, [r9 + 0x1f]
cmp r8d, edx
jle 0x458880
lea eax, [rcx + 0x11]
jmp 0x458258
xor r12d, r12d
jmp 0x458010
or ecx, 2
jmp 0x457f43
sub r9d, r10d
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd r9, r9d
movzx edx, byte [rdx + r9]
add edx, eax
jmp 0x458218
mov r12d, dword [rax + 0x18]
jmp 0x45805e
cmp cx, 1
jbe 0x458d4e
movzx ecx, cx
mov rax, rbp
mov r8d, 0x2e
xor r11d, r11d
sub ecx, 2
lea r10, [rbp + rcx*8 + 8]
nop dword [rax]
mov rcx, qword [rax]
test rcx, rcx
je 0x458707
cmp qword [rcx], r9
cmove r8, r11
add rax, 8
cmp r10, rax
jne 0x4586f8
mov word [rsp + 0x44], r8w
test dl, dl
jne 0x4588f0
mov eax, dword [rbx + 0x38]
jmp 0x45814a
mov eax, edx
mov r8d, edx
and eax, 2
jmp 0x45815c
add ecx, edx
mov edx, 1
jmp 0x4583c6
add ecx, r9d
jmp 0x4583ee
cmp byte [r13 + 0x62], 0
je 0x458356
cmp di, 2
jne 0x458356
nop dword [rax]
or ecx, 0x1001
mov dword [rbx + 0x38], ecx
mov edx, ecx
jmp 0x458368
mov rax, qword [rsp + 0x188]
mov rdx, qword [rsi]
mov eax, dword [rax + 0x44]
mov rcx, qword [rdx + 0x10]
mov dword [rsp + 0x68], eax
movzx eax, byte [rcx]
cmp al, 0xb0
jne 0x4587a1
movzx eax, byte [rcx + 2]
cmp al, 0xb1
je 0x458d20
mov ebp, 1
cmp al, 0x8a
je 0x458a6f
nop word cs:[rax + rax]
mov edx, dword [rbx + 0x38]
test dil, 0x24
je 0x458a20
or edx, 0x22
mov word [rbx + 0x1a], bp
mov dword [rbx + 0x38], edx
test byte [rsi + 0x13], 1
je 0x458d03
movzx r8d, word [rbx + 0x3c]
lea rax, [rsi + 0x38]
movzx ecx, word [rbx + 0x40]
mov qword [rsp + 0x78], rax
mov rax, r8
add r8d, 1
cmp r8d, ecx
jle 0x45881e
mov rcx, qword [rsp + 0x98]
mov rdx, rbx
call fcn.0044d540
test eax, eax
jne 0x458990
movzx eax, word [rbx + 0x3c]
mov edx, dword [rbx + 0x38]
lea r8d, [rax + 1]
mov rcx, qword [rbx + 0x48]
lea r11, [rsi + 0x38]
mov ebp, 1
mov word [rbx + 0x3c], r8w
mov r8d, edx
or r8d, 0x10
and edx, 2
mov qword [rcx + rax*8], r11
movzx ecx, word [rbx + 0x16]
mov dword [rbx + 0x38], r8d
mov word [rbx + 0x1c], bp
jne 0x458dae
mov qword [rsp + 0x68], rsi
jmp 0x458164
sub r9d, r8d
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd r9, r9d
movzx edx, byte [rdx + r9]
add eax, edx
jmp 0x458258
sub r8d, r9d
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd r8, r8d
movzx edx, byte [rdx + r8]
add eax, edx
jmp 0x458258
sub ecx, 0x14
jmp 0x4583c6
bsr r8, rax
mov ecx, 0x3c
xor r8, 0x3f
sub ecx, r8d
lea r9d, [rcx + rcx*4]
shr rax, cl
lea r9d, [r9 + r9 + 0x28]
and eax, 7
lea rcx, [0x0061f5f0]
movzx eax, word [rcx + rax*2]
lea eax, [r9 + rax - 0xa]
mov word [rsp + 0x44], ax
movsx r8, ax
test dl, dl
je 0x45871e
mov rax, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
movzx edx, word [rax + rcx]
cmp r8d, 0xa
jle 0x458db6
bsr r9, r8
mov ecx, 0x3c
lea rax, [0x0061f5f0]
xor r9, 0x3f
sub ecx, r9d
shr r8, cl
lea ecx, [rcx + rcx*4]
and r8d, 7
movzx eax, word [rax + r8*2]
lea eax, [rax + rcx*2 - 3]
jmp 0x45894e
mov rax, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
movzx edx, word [rax + rcx]
xor ecx, ecx
xor eax, eax
mov word [rsp + 0x44], cx
sub ax, word [rsp + 0x4c]
lea eax, [rdx + rax + 0xa]
cmp ax, word [rsp + 0x44]
jns 0x45871e
cmp word [rsp + 0x62], 1
jg 0x458008
mov rax, qword [rsp + 0x98]
test byte [rax + 0x62], 2
jne 0x458008
mov eax, dword [rbx + 0x38]
or eax, 0x100000
jmp 0x45814a
xor r12d, r12d
jmp 0x45802b
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsi]
mov edx, dword [rax + 0x198]
test edx, edx
je 0x4589bd
add dword [rsi + 0x30], 1
mov dword [rsi + 0x18], 9
mov r8, qword [rax + 0x210]
test r8, r8
je 0x4582c9
mov rsi, qword [rsp + 0x58]
mov ecx, dword [rsi + 0xdc]
lea edx, [rcx + 1]
mov dword [rsp + 0x44], ecx
mov dword [rsi + 0xdc], edx
cmp edx, dword [rax + 0x220]
jb 0x4582c9
mov rcx, qword [rax + 0x218]
call r8
test eax, eax
je 0x458a0a
add dword [rsi + 0x30], 1
mov dword [rsi + 0x18], 9
mov rax, qword [rsp + 0x58]
mov dword [rax + 0xdc], 0
jmp 0x4582c9
mov r8d, edx
mov word [rbx + 0x1c], bp
movzx ecx, word [rbx + 0x16]
or r8d, 0x12
and edx, 0x20
mov dword [rbx + 0x38], r8d
je 0x458ce2
movzx edx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
xor r10d, r10d
mov qword [rsp + 0x78], rsi
mov word [rsp + 0x44], r10w
mov rdi, qword [rax + rdx*8 - 0x10]
movsx eax, cx
xor edx, edx
mov qword [rsp + 0x68], rdi
test rdi, rdi
jne 0x4583a5
jmp 0x4583ce
mov rcx, qword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
mov eax, dword [rax]
movzx ebp, word [r13 + 0x60]
sub ebp, dword [rsp + 0x74]
cmp ebp, eax
cmovle eax, ebp
mov dword [rsp + 0x78], eax
cmp eax, 1
jle 0x458dd4
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x180], r15
mov ebp, 1
mov qword [rsp + 0xb0], rbx
lea r8, [rax + 1]
mov word [rsp + 0xba], di
mov rdi, r13
mov rbx, r8
nop dword [rax + rax]
mov rdx, qword [rdx + 0x18]
movsxd rax, ebp
shl rax, 5
mov r12, qword [rcx + rax + 8]
mov rcx, qword [rdx + 0x20]
test byte [rdx + 5], 0x10
je 0x458c70
add rax, qword [rcx + 0x20]
mov r13, qword [rax + 8]
cmp byte [r12], 0xa7
jne 0x458c50
mov eax, dword [rsp + 0x68]
cmp eax, dword [r12 + 0x2c]
jne 0x458c50
mov rax, qword [rdi + 8]
movzx eax, word [rax + rbx*2]
cmp word [r12 + 0x30], ax
jne 0x458c50
mov rax, qword [rdi + 0x38]
mov rcx, qword [rsp + 0x80]
movzx ecx, byte [rax + rcx]
cmp byte [rax + rbx], cl
jne 0x458c50
mov rcx, r12
call fcn.004095b0
mov rcx, r13
mov r15d, eax
call fcn.004095b0
cmp al, 0x40
jle 0x458c80
cmp r15b, 0x40
jle 0x458c80
cmp al, 0x42
jg 0x458cc0
mov eax, 0x41
cmp r15b, 0x42
jg 0x458cc0
movsx rdx, word [r12 + 0x30]
mov rcx, qword [rdi + 0x18]
test dx, dx
js 0x458c50
cmp word [rcx + 0x36], dx
jle 0x458c50
mov r15, qword [rcx + 8]
lea rdx, [rdx + rdx*2]
lea rdx, [r15 + rdx*8]
movzx r9d, byte [rdx + 0xc]
cmp r9b, al
jne 0x458c50
test byte [r12 + 5], 2
jne 0x458c38
test r13, r13
je 0x458bc4
test byte [r13 + 5], 2
jne 0x458cd0
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call fcn.00455620
test rax, rax
je 0x458cd0
mov rdx, qword [rdi + 0x40]
mov r9, qword [rax]
xor ecx, ecx
mov r10, qword [rdx + rbx*8]
jmp 0x458bff
movzx edx, byte [r14 + rdx]
cmp byte [r14 + rax], dl
jne 0x458c50
add rcx, 1
movzx eax, byte [r9 + rcx]
movzx edx, byte [r10 + rcx]
cmp eax, edx
jne 0x458bf0
test eax, eax
jne 0x458bfb
add ebp, 1
add rbx, 1
cmp dword [rsp + 0x78], ebp
je 0x458d66
mov rdx, qword [rsi]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rax + 0x20]
jmp 0x458ac8
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call fcn.00455620
test rax, rax
jne 0x458bda
nop word [rax + rax]
mov r13, rdi
mov rbx, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x180]
movzx edi, word [rsp + 0xba]
jmp 0x4587c0
mov r13, qword [rcx + rax + 8]
jmp 0x458aee
movsx r10, word [r12 + 0x30]
mov edx, r15d
mov r9d, 0x44
or edx, 0x40
cmp al, 0x41
cmovl eax, edx
mov rdx, r10
test r10d, r10d
js 0x458b9f
mov rcx, qword [rdi + 0x18]
movsx r11d, word [rcx + 0x36]
cmp r10d, r11d
jge 0x458b9f
jmp 0x458b8e
mov eax, 0x43
jmp 0x458b71
mov rcx, qword [rsp + 0x58]
mov rdx, r13
call fcn.00455620
jmp 0x458c45
xor r11d, r11d
mov qword [rsp + 0x78], rsi
movsx eax, cx
xor edx, edx
mov word [rsp + 0x44], r11w
mov qword [rsp + 0x68], 0
jmp 0x4583ce
mov qword [rsp + 0x78], 0
movzx ecx, word [rbx + 0x16]
mov qword [rsp + 0x68], rsi
movsx eax, cx
mov r8d, edx
jmp 0x4583a5
mov rcx, qword [rcx + 0x20]
mov eax, dword [rcx]
jmp 0x458a79
xor ecx, ecx
mov word [rsp + 0x44], cx
test dl, dl
je 0x45871e
mov rax, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
movzx edx, word [rax + rcx]
xor eax, eax
jmp 0x45894e
test dl, dl
jne 0x458d8b
mov r8d, 0x2e
mov eax, dword [rbx + 0x38]
mov word [rsp + 0x44], r8w
jmp 0x45814a
mov r13, rdi
mov rbx, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x180]
movzx edi, word [rsp + 0xba]
movzx ebp, word [rsp + 0x78]
jmp 0x4587c0
mov rax, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
mov r9d, 0x2e
mov word [rsp + 0x44], r9w
movzx edx, word [rax + rcx]
mov eax, 0x16
jmp 0x45894e
mov edx, r8d
jmp 0x458d10
xor eax, eax
jmp 0x45894e
movzx ecx, word [rsp + 0x4e]
movzx r10d, word [rsp + 0x4a]
mov r8d, dword [rsp + 0x64]
mov edx, ecx
jmp 0x458595
mov ebp, 1
jmp 0x4587c0