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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0xa8]
sub rsp, 0x1a8
mov rdi, rcx
xor r9d, r9d
lea rcx, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
call fcn.14004d080
lea rbx, [rdi + 0x408]
mov dword [rsp + 0x30], 0x55aa1234
mov eax, dword [rbx]
lea rsi, [rdi + 0x428]
mov dword [rsp + 0x38], eax
xor r12d, r12d
mov eax, dword [rsi]
mov rdx, rbx
mov dword [rsp + 0x3c], eax
mov r8, rsi
imul eax, dword [rdi + 0x448], 0x1c
mov dword [rsp + 0x34], 2
mov qword [rsp + 0x44], 0x30
mov dword [rdi + 0x4f0], r12d
mov dword [rsp + 0x40], eax
cmp dword [rdi + 0x4ec], r12d
jl 0x140055121
mov rcx, qword [rdi + 0x4e0]
test rcx, rcx
je 0x14005511a
call fcn.140008d60
lea rdx, [rdi + 0x408]
mov qword [rdi + 0x4e0], r12
lea r8, [rdi + 0x428]
mov dword [rdi + 0x4e8], r12d
mov rax, qword [rdi + 0x4e0]
mov r13d, r12d
mov qword [rdi + 0x4f8], rax
cmp dword [rdi + 0x4b0], r12d
jle 0x14005515a
mov eax, dword [rdi + 0x4d0]
mov rbx, rdx
mov rsi, r8
test eax, eax
jle 0x14005515a
add eax, 0x88
mov r13d, 0x80
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x1f0], r14
lea rdx, [rsp + 0x30]
mov r8d, 0x1c
mov qword [rsp + 0x1a0], r15
lea rcx, [rsp + 0x50]
call fcn.14004dda0
mov r8d, dword [rbx]
lea rcx, [rsp + 0x50]
mov rdx, qword [rdi + 0x3f8]
call fcn.14004dda0
mov esi, dword [rsi]
test esi, esi
je 0x140055239
mov eax, 0x20
add eax, eax
cmp eax, 0x80000
jl 0x1400551a2
movsxd rcx, eax
call fcn.140008d20
mov r15, rax
mov r14d, r12d
test esi, esi
jle 0x14005522c
nop dword [rax]
mov ebx, 0x80000
mov r10d, r12d
cmp esi, ebx
cmovb ebx, esi
test ebx, ebx
je 0x140055216
movsxd rdx, dword [rdi + 0x424]
mov rax, qword [rdi + 0x418]
mov rcx, rdx
shl edx, 5
movsxd r9, r14d
inc r14d
sar rcx, 0x1b
mov r8, r9
sar r8, cl
movsxd rdx, edx
sar rdx, 5
and rdx, r9
mov ecx, r10d
mov rax, qword [rax + r8*8]
inc r10d
movzx eax, byte [rdx + rax]
mov byte [rcx + r15], al
cmp r10d, ebx
jl 0x1400551d1
mov r8d, ebx
lea rcx, [rsp + 0x50]
mov rdx, r15
call fcn.14004dda0
sub esi, ebx
test esi, esi
jg 0x1400551c0
test r15, r15
je 0x140055239
mov rcx, r15
call fcn.140008d60
imul r8d, dword [rdi + 0x448], 0x1c
lea rcx, [rsp + 0x50]
mov rdx, qword [rdi + 0x438]
call fcn.14004dda0
lea rdx, [rdi + 0x468]
mov r8d, 0x10
lea rcx, [rsp + 0x50]
call fcn.14004dda0
lea rdx, [rdi + 0x478]
mov r8d, 0x10
lea rcx, [rsp + 0x50]
call fcn.14004dda0
mov edx, dword [rsp + 0x64]
lea r8, [rdi + 0x488]
mov rcx, qword [rsp + 0x50]
call fcn.14004aa80
mov r8d, 0x10
lea rdx, [rdi + 0x488]
lea rcx, [rsp + 0x50]
call fcn.14004dda0
mov dword [rdi + 0x500], r12d
cmp dword [rsp + 0x48], r12d
jle 0x140055499
mov edx, dword [rsp + 0x64]
mov r8d, dword [rsp + 0x44]
add r8d, dword [rsp + 0x40]
add r8d, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x38]
add eax, 0x1c
mov dword [rdi + 0x500], edx
add r8d, eax
cmp edx, r8d
je 0x1400552f4
lea rcx, str.Size_mismatch_determining_size_of_signed_data_block___d_vs__d_
call qword [sym.imp.tier0.dll_Error]
int3
lea esi, [r13 + 0x400]
mov dword [rdi + 0x4f0], r12d
mov edx, esi
lea rcx, [rdi + 0x4e0]
call fcn.140012090
mov eax, dword [rdi + 0x4f0]
sub eax, esi
test eax, eax
jle 0x140055330
mov rdx, qword [rdi + 0x4e0]
mov ecx, esi
add rcx, rdx
movsxd r8, eax
call fcn.140087590
mov eax, dword [rdi + 0x4f0]
lea r9, [rbp + 0xe0]
mov r8, qword [rdi + 0x4e0]
mov edx, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x50]
mov dword [rbp + 0xe0], eax
mov eax, dword [rdi + 0x4b0]
mov dword [rsp + 0x28], eax
mov rax, qword [rdi + 0x4a0]
mov qword [rsp + 0x20], rax
call fcn.140007550
test al, al
jne 0x140055380
lea rcx, str.VPK_signing_failed.__Private_key_may_be_corrupt_or_invalid
call qword [sym.imp.tier0.dll_Error]
int3
mov r9d, dword [rbp + 0xe0]
cmp r9d, r13d
je 0x1400553a0
mov r8d, r13d
lea rcx, str.VPK_signing_produced__d_byte_signature.__Expected_size_was__d_bytes
mov edx, r9d
call qword [sym.imp.tier0.dll_Error]
int3
lea rsi, [rdi + 0x4e0]
mov ebx, r9d
mov r14d, dword [rsi + 0x10]
sub ebx, r14d
test ebx, ebx
jle 0x1400553e9
mov edx, ebx
mov rcx, rsi
call fcn.140012090
mov eax, dword [rsi + 0x10]
sub eax, r14d
sub eax, ebx
test eax, eax
jle 0x1400553e0
mov edx, r14d
movsxd r8, eax
add rdx, qword [rsi]
lea ecx, [r14 + rbx]
add rcx, qword [rsi]
call fcn.140087590
mov r9d, dword [rbp + 0xe0]
jmp 0x1400553f2
jns 0x1400553f2
lea eax, [rbx + r14]
mov dword [rsi + 0x10], eax
mov eax, dword [rdi + 0x4d0]
mov r8, qword [rdi + 0x4e0]
mov edx, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x28], eax
mov rax, qword [rdi + 0x4c0]
mov qword [rsp + 0x20], rax
call fcn.140007800
test al, al
jne 0x14005542f
lea rcx, str.VPK_signature_verification_failed_immediately_after_signing.__The_public_key_might_be_invalid__or_might_not_match_the_private_key_used_to_generate_the_signature.
call qword [sym.imp.tier0.dll_Error]
int3
mov eax, dword [rdi + 0x4d0]
lea rdx, [rbp + 0xe8]
mov r8d, 4
mov dword [rbp + 0xe8], eax
lea rcx, [rsp + 0x50]
call fcn.14004dda0
mov r8d, dword [rbp + 0xe8]
lea rcx, [rsp + 0x50]
mov rdx, qword [rdi + 0x4c0]
call fcn.14004dda0
mov r8d, 4
lea rdx, [rbp + 0xe0]
lea rcx, [rsp + 0x50]
call fcn.14004dda0
mov r8d, dword [rbp + 0xe0]
lea rcx, [rsp + 0x50]
mov rdx, qword [rdi + 0x4e0]
call fcn.14004dda0
lea r15, str._s.vpk
mov rdx, r15
lea r8, [rdi + 4]
lea rcx, [rbp - 0x70]
call fcn.14004f3d0
mov rcx, qword [0x1400c9dc0]
lea rdx, [rbp - 0x70]
add rcx, 8
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x50]
test al, al
je 0x1400554e0
mov rcx, qword [0x1400c9dc0]
lea rdx, [rbp - 0x70]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x78]
lea r14, str._s_dir.vpk
mov rdx, r14
lea r8, [rdi + 4]
lea rcx, [rbp - 0x70]
call fcn.14004f3d0
mov rcx, qword [0x1400c9dc0]
lea rdx, [rbp - 0x70]
add rcx, 8
lea rsi, [rdi + 4]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x50]
test al, al
je 0x14005552f
mov rcx, qword [0x1400c9dc0]
lea rdx, [rbp - 0x70]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x78]
lea rsi, [rdi + 4]
cmp dword [rdi + 0x498], r12d
jl 0x140055541
mov byte [rdi + 0x214], 1
jmp 0x140055545
lea rsi, [rdi + 4]
cmp byte [rdi + 0x214], r12b
lea rcx, [rbp - 0x70]
mov r9, rsi
mov edx, 0x104
cmove r14, r15
mov r8, r14
call fcn.140049620
mov rcx, qword [0x1400c9dc0]
lea r8, [0x14008ed2c]
add rcx, 8
lea rdx, [rbp - 0x70]
xor r9d, r9d
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x1400c9dc0]
mov rbx, rax
mov r8d, dword [rsp + 0x64]
add rcx, 8
mov rdx, qword [rsp + 0x50]
mov r9, rbx
mov rax, qword [rcx]
call qword [rax + 8]
test rbx, rbx
je 0x1400555bd
mov rcx, qword [0x1400c9dc0]
mov rdx, rbx
add rcx, 8
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp dword [rsp + 0x5c], r12d
jl 0x1400555d3
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400555d3
call fcn.140008d60
mov r15, qword [rsp + 0x1a0]
mov r14, qword [rsp + 0x1f0]
add rsp, 0x1a8
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret