Function at 0x4350d0
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, 0x78
mov rax, qword [rdx + 0x148]
mov rbp, qword [rcx]
mov r13d, dword [rdx + 0x38]
mov qword [rcx + 0xb0], rax
mov rbx, rcx
mov rdi, rdx
movzx eax, word [rdx + 0x130]
mov qword [rdx + 0x148], 0
mov word [rsp + 0x46], ax
mov eax, dword [rdx + 0x34]
mov ecx, eax
mov dword [rsp + 0x48], eax
mov eax, dword [rdx + 0x88]
add r13d, ecx
mov dword [rsp + 0x6c], eax
test ecx, ecx
jne 0x435138
test r13d, r13d
setg al
cmp al, 1
sbb r13d, 0xffffffff
mov eax, dword [rbx + 0x90]
mov esi, dword [rdi + 0x3c]
lea rdx, [rsp + 0x6c]
mov rcx, rbx
lea eax, [rax + rax*2]
shl eax, 3
sub esi, eax
movsxd r14, eax
add r14, qword [rbx + 0x88]
and esi, 0xfffffff8
mov qword [rsp + 0x38], r14
call fcn.00418b10
xor eax, eax
cmp byte [rdi + 0x20], 0
movsxd rsi, esi
je 0x43517a
cmp byte [rdi + 0x21], 0
setne al
shl eax, 5
mov edx, eax
movzx eax, byte [rbx + 0xc8]
and eax, 0xffffffdf
or eax, edx
mov byte [rbx + 0xc8], al
movzx edx, byte [rdi + 0x133]
test dl, dl
je 0x4354fa
cmp r13d, 0xa
mov ecx, 0xa
mov rdi, qword [rbx]
cmovl r13d, ecx
mov ecx, edx
and eax, 0xfffffff3
and ecx, 3
shl ecx, 2
or eax, ecx
mov byte [rbx + 0xc8], al
movzx eax, word [rbx + 0xc0]
cmp dl, 2
je 0x435760
test ax, ax
jne 0x435898
mov r14d, 8
mov edx, 0x380
mov rcx, rdi
mov word [rbx + 0xc0], r14w
call fcn.0042cd60
mov qword [rbx + 0x98], rax
test rax, rax
je 0x4353dd
mov edx, 1
mov ecx, 1
mov qword [rax + 0x18], rdi
mov r8d, 1
mov r9d, 1
mov r10d, 1
mov r11d, 1
mov r12d, 1
mov word [rax + 0x14], dx
mov r14d, 1
mov r15d, 1
mov edx, 1
mov word [rax + 0x4c], cx
mov ecx, 1
mov word [rax + 0x84], r8w
mov r8d, 1
mov word [rax + 0xbc], r9w
mov r9d, 1
mov word [rax + 0xf4], r10w
mov r10d, 1
mov word [rax + 0x12c], r11w
mov r11d, 1
mov word [rax + 0x164], r12w
mov r12d, 1
mov dword [rax + 0x20], 0
mov qword [rax + 0x50], rdi
mov dword [rax + 0x58], 0
mov qword [rax + 0x88], rdi
mov dword [rax + 0x90], 0
mov qword [rax + 0xc0], rdi
mov dword [rax + 0xc8], 0
mov qword [rax + 0xf8], rdi
mov dword [rax + 0x100], 0
mov qword [rax + 0x130], rdi
mov dword [rax + 0x138], 0
mov qword [rax + 0x168], rdi
mov dword [rax + 0x170], 0
mov word [rax + 0x19c], r14w
mov qword [rax + 0x1a0], rdi
mov dword [rax + 0x1a8], 0
mov word [rax + 0x1d4], r15w
mov qword [rax + 0x1d8], rdi
mov dword [rax + 0x1e0], 0
mov word [rax + 0x20c], dx
mov qword [rax + 0x210], rdi
mov dword [rax + 0x218], 0
mov word [rax + 0x244], cx
mov qword [rax + 0x248], rdi
mov dword [rax + 0x250], 0
mov word [rax + 0x27c], r8w
mov qword [rax + 0x280], rdi
mov dword [rax + 0x288], 0
mov word [rax + 0x2b4], r9w
mov qword [rax + 0x2b8], rdi
mov dword [rax + 0x2c0], 0
mov word [rax + 0x2ec], r10w
mov qword [rax + 0x2f0], rdi
mov dword [rax + 0x2f8], 0
mov word [rax + 0x324], r11w
mov qword [rax + 0x328], rdi
mov dword [rax + 0x330], 0
mov word [rax + 0x35c], r12w
mov qword [rax + 0x360], rdi
mov dword [rax + 0x368], 0
mov dword [rsp + 0x28], 8
xor edi, edi
mov qword [rsp + 0x50], rsi
xor r14d, r14d
mov rsi, rbx
mov dword [rsp + 0x4c], r13d
mov qword [rsp + 0x58], rbp
jmp 0x43548e
mov rbx, qword [r12 + 0x18]
mov r11d, 0x3b9aca00
test rbx, rbx
je 0x43541f
movsxd r11, dword [rbx + 0x88]
mov rcx, rbp
mov qword [rsp + 0x30], r11
call sub.msvcrt.dll_strlen
mov r11, qword [rsp + 0x30]
mov r15, rax
cmp rax, r11
jg 0x4356e0
test r13w, r13w
jne 0x43544d
mov r13d, dword [r12 + 0x20]
test r13d, r13d
je 0x435455
mov rcx, r12
call fcn.00421bb0
and r15d, 0x7fffffff
mov ebx, 0x2202
mov qword [r12 + 8], rbp
mov qword [r12 + 0x30], 0
mov dword [r12 + 0x10], r15d
mov word [r12 + 0x14], bx
mov byte [r12 + 0x16], 1
add rdi, 1
add r14, 0x38
cmp dword [rsp + 0x28], edi
jle 0x4354e8
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
jne 0x435480
mov r12, qword [rsi + 0x98]
lea rax, str.addr
mov rbp, qword [rax + rdi*8]
add r12, r14
movzx r13d, word [r12 + 0x14]
and r13w, 0x9000
test rbp, rbp
jne 0x435408
test r13w, r13w
jne 0x435920
mov eax, 1
add rdi, 1
add r14, 0x38
mov word [r12 + 0x14], ax
cmp dword [rsp + 0x28], edi
jg 0x43548e
nop dword [rax]
mov rbx, rsi
mov r13d, dword [rsp + 0x4c]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
movsxd rax, r13d
and byte [rbx + 0xc8], 0xfc
lea r12, [rax*8]
sub r12, rax
shl r12, 3
cmp rsi, r12
jl 0x435730
mov rax, qword [rsp + 0x38]
sub rsi, r12
xor r10d, r10d
lea rdx, [rax + rsi]
movsx rax, word [rsp + 0x46]
mov qword [rbx + 0x68], rdx
lea rdi, [rax*8]
sub rdi, rax
shl rdi, 3
cmp rdi, rsi
jg 0x435720
mov rax, qword [rsp + 0x38]
sub rsi, rdi
lea r9, [rax + rsi]
movsxd rax, dword [rsp + 0x6c]
mov qword [rbx + 0x80], r9
shl rax, 3
cmp rax, rsi
jg 0x435750
sub rsi, rax
mov rax, qword [rsp + 0x38]
add rax, rsi
movsxd r8, dword [rsp + 0x48]
mov qword [rbx + 0x70], rax
lea r14, [r8*8]
cmp r14, rsi
jg 0x435740
mov rcx, qword [rsp + 0x38]
sub rsi, r14
add rcx, rsi
mov qword [rbx + 0x78], rcx
test r10, r10
jne 0x435660
cmp byte [rbp + 0x67], 0
jne 0x435686
mov eax, dword [rsp + 0x48]
mov dword [rbx + 0x28], eax
movzx eax, word [rsp + 0x46]
mov word [rbx + 0x20], ax
test ax, ax
jle 0x435610
movsx eax, word [rsp + 0x46]
sub eax, 1
add rax, 1
lea r10, [rax*8]
sub r10, rax
lea rax, [r9 + r10*8]
nop dword [rax]
mov r10d, 1
mov qword [r9 + 0x18], rbp
add r9, 0x38
mov word [r9 - 0x24], r10w
mov dword [r9 - 0x18], 0
cmp rax, r9
jne 0x4355f0
mov dword [rbx + 0x24], r13d
test r13d, r13d
jle 0x43564c
lea eax, [r13 - 1]
add rax, 1
lea r9, [rax*8]
sub r9, rax
lea rax, [rdx + r9*8]
xor r8d, r8d
mov qword [rdx + 0x18], rbp
add rdx, 0x38
mov word [rdx - 0x24], r8w
mov dword [rdx - 0x18], 0
cmp rax, rdx
jne 0x435630
mov r8, r14
xor edx, edx
call sub.msvcrt.dll_memset
jmp 0x435696
mov rdx, r10
mov rcx, rbp
mov qword [rsp + 0x28], r10
call fcn.0042cd60
mov r10, qword [rsp + 0x28]
mov qword [rbx + 0x100], rax
cmp byte [rbp + 0x67], 0
je 0x4358d0
xor r11d, r11d
mov qword [rbx + 0x24], 0
mov word [rbx + 0x20], r11w
mov eax, 0xffffff02
mov byte [rbx + 0xc5], 1
mov word [rbx + 0xc2], ax
movabs rax, 0xffffffff00000001
mov qword [rbx + 0x2c], rax
mov qword [rbx + 0x34], 0
mov qword [rbx + 0x3c], 0
mov qword [rbx + 0x50], 0
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13w, r13w
jne 0x435930
mov r15d, 1
mov word [r12 + 0x14], r15w
test rbx, rbx
je 0x435480
mov rax, qword [rbx + 0x160]
test rax, rax
je 0x435480
add dword [rax + 0x30], 1
mov dword [rax + 0x18], 0x12
jmp 0x435480
add r10, rdi
xor r9d, r9d
jmp 0x435559
mov r10, r12
xor edx, edx
jmp 0x43552b
add r10, r14
xor ecx, ecx
jmp 0x4355a2
add r10, rax
xor eax, eax
jmp 0x43557d
test ax, ax
je 0x435775
mov rcx, qword [rbx + 0x98]
test rcx, rcx
jne 0x435942
mov r14d, 4
mov edx, 0x1c0
mov rcx, rdi
mov word [rbx + 0xc0], r14w
call fcn.0042cd60
mov qword [rbx + 0x98], rax
test rax, rax
je 0x435882
mov r15d, 1
mov edx, 1
mov qword [rax + 0x18], rdi
mov ecx, 1
mov r8d, 1
mov r9d, 1
mov word [rax + 0x4c], dx
mov r10d, 1
mov r11d, 1
mov r12d, 1
mov word [rax + 0x14], r15w
mov dword [rax + 0x20], 0
mov qword [rax + 0x50], rdi
mov dword [rax + 0x58], 0
mov word [rax + 0x84], cx
mov qword [rax + 0x88], rdi
mov dword [rax + 0x90], 0
mov word [rax + 0xbc], r8w
mov qword [rax + 0xc0], rdi
mov dword [rax + 0xc8], 0
mov word [rax + 0xf4], r9w
mov qword [rax + 0xf8], rdi
mov dword [rax + 0x100], 0
mov word [rax + 0x12c], r10w
mov qword [rax + 0x130], rdi
mov dword [rax + 0x138], 0
mov word [rax + 0x164], r11w
mov qword [rax + 0x168], rdi
mov dword [rax + 0x170], 0
mov word [rax + 0x19c], r12w
mov qword [rax + 0x1a0], rdi
mov dword [rax + 0x1a8], 0
mov dword [rsp + 0x28], 0xc
mov edi, 8
jmp 0x4353e7
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x4351dc
lea edx, [rax + rax]
call fcn.00421c80
mov rdx, qword [rbx + 0x98]
test rdx, rdx
je 0x4351dc
mov rcx, rdi
call fcn.004235b0
jmp 0x4351dc
mov rdx, qword [rbx + 0x68]
test rdx, rdx
je 0x4359c0
mov r9, qword [rbx + 0x80]
mov qword [rbx + 0x68], rdx
test r9, r9
je 0x4359a8
mov rcx, qword [rbx + 0x70]
movsxd r11, dword [rsp + 0x6c]
mov qword [rbx + 0x80], r9
test rcx, rcx
je 0x435988
mov qword [rbx + 0x70], rcx
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x435970
mov qword [rbx + 0x78], rcx
jmp 0x4355b9
mov rcx, r12
call fcn.00421a10
jmp 0x435480
mov rcx, r12
call fcn.00421a10
mov rbx, qword [r12 + 0x18]
jmp 0x4356f6
lea edx, [rax + rax]
call fcn.00421c80
mov rdx, qword [rbx + 0x98]
test rdx, rdx
je 0x435775
mov rcx, rdi
call fcn.004235b0
jmp 0x435775
mov r11, r10
sub r11, r14
add rax, r11
cmp r14, r10
cmovle rcx, rax
jmp 0x435917
shl r11, 3
cmp r11, r10
jg 0x43590a
sub r10, r11
lea rcx, [rax + r10]
jmp 0x43590a
cmp rdi, r10
jg 0x4358f1
sub r10, rdi
lea r9, [rax + r10]
jmp 0x4358f1
cmp r12, r10
jg 0x4358dd
sub r10, r12
lea rdx, [rax + r10]
jmp 0x4358dd