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

Disassembly:
push rbx
push rsi
push r15
sub rsp, 0x100
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov esi, r8d
mov dword [rsp + 0x50], r8d
mov r15d, edx
mov qword [rsp + 0x40], rcx
mov rbx, rcx
mov edx, esi
mov ecx, r15d
xor r8d, r8d
call fcn.18004a3d8
lea rdx, [rsp + 0x98]
mov ecx, r15d
call fcn.180024050
cmp eax, 1
jne 0x180024a3d
cmp byte [rsp + 0x9d], al
jne 0x180024a3d
cmp word [rsp + 0xaa], 3
jne 0x180024a3d
movzx eax, word [rsp + 0xc8]
mov ecx, r15d
mov edx, dword [rsp + 0xb8]
mov qword [rsp + 0xf8], rdi
add edx, esi
mov qword [rsp + 0xe8], r13
lea r8d, [rax + rax*4]
mov qword [rsp + 0xe0], r14
shl r8d, 3
mov qword [rsp + 0x138], rbp
mov qword [rsp + 0xf0], r12
call fcn.180023f90
movzx ebx, word [rsp + 0xc8]
mov r14, rax
shl ebx, 4
mov ecx, ebx
mov qword [rsp + 0x48], rax
mov edi, ebx
call fcn.180046850
mov r13, rax
test ebx, ebx
je 0x180024225
test rax, rax
je 0x180024a84
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.1800586e0
movzx ecx, word [rsp + 0xca]
lea rax, [rcx + rcx*4]
mov ecx, r15d
mov edx, dword [r14 + rax*8 + 0x10]
lea r8, [r14 + rax*8]
mov r8d, dword [r14 + rax*8 + 0x14]
add edx, esi
call fcn.180023f90
mov edi, 1
mov qword [rsp + 0x60], rax
mov r9, rax
mov esi, edi
xor eax, eax
mov r12d, eax
mov qword [rsp + 0x88], rax
mov edx, eax
mov qword [rsp + 0x90], rax
mov ebp, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], eax
cmp di, word [rsp + 0xc8]
jae 0x180024349
mov rbx, qword [rsp + 0x48]
lea r14, [r13 + 0x10]
add rbx, 0x3c
cmp dword [rbx - 0x10], 2
lea rdi, [rbx - 0x14]
jne 0x180024317
test rdx, rdx
jne 0x1800243f0
mov r8d, dword [rbx]
mov ecx, r8d
mov edx, dword [rsp + 0x50]
add edx, dword [rbx - 4]
shr ecx, 4
mov dword [rsp + 0x68], ecx
mov ecx, r15d
call fcn.180023f90
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x590]
mov rax, qword [rsp + 0x48]
mov qword [r14], rcx
mov ecx, dword [rbx + 4]
lea rdx, [rcx + rcx*4]
mov ecx, r15d
mov r8d, dword [rax + rdx*8 + 0x14]
lea rdi, [rax + rdx*8]
mov edx, dword [rsp + 0x50]
add edx, dword [rdi + 0x10]
call fcn.180023f90
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rax
test dword [rdi + 8], 0x800
mov edi, 1
movzx ecx, word [rsp + 0xc8]
cmovne ebp, edi
inc esi
add rbx, 0x28
mov dword [rsp + 0x54], ebp
add r14, 0x10
cmp esi, ecx
jl 0x1800242a6
mov r9, qword [rsp + 0x60]
mov r12d, edi
cmp di, word [rsp + 0xc8]
jae 0x180024706
mov rdx, qword [rsp + 0x48]
lea rsi, [r13 + 0x1c]
mov qword [rsp + 0x80], rsi
mov ecx, 0x1c182
lea r14, [rdx + 0x28]
movzx eax, word [rsp + 0xca]
cmp r12d, eax
je 0x180024635
cmp dword [r14 + 4], 9
mov rbx, r14
jne 0x1800243a0
mov eax, dword [r14 + 0x1c]
lea rcx, [rax + rax*4]
lea rbx, [rdx + rcx*8]
mov ecx, 0x1c182
mov eax, dword [rbx + 4]
cmp eax, 0x10
ja 0x1800243ad
bt ecx, eax
jb 0x1800243c6
mov ecx, dword [rbx]
lea rdx, str..stabstr
add rcx, r9
call fcn.180058450
test eax, eax
jne 0x18002462b
test ebp, ebp
je 0x18002443a
mov ecx, dword [rbx]
lea rdx, str..debug_
mov rbx, qword [rsp + 0x60]
mov r8d, 7
add rcx, rbx
call fcn.180042cd0
test eax, eax
je 0x18002462b
jmp 0x18002443f
cmp dword [0x18009142c], r12d
jne 0x180024410
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x18009142c], 1
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rsp + 0x40]
lea rcx, str.object_must_contain_only_one_symtab
mov qword [0x180091250], rax
call fcn.180032f10
jmp 0x1800249af
mov rbx, qword [rsp + 0x60]
mov r11d, dword [r14]
add r11, rbx
cmp dword [r14 + 0x20], 1
jae 0x180024450
mov dword [r14 + 0x20], edi
mov rcx, qword [rsp + 0x40]
mov r10, rdi
movsxd rax, dword [rcx + 0x528]
cmp eax, 1
jle 0x1800244bc
mov r9, qword [rcx + 0x520]
mov rdi, rax
add r9, 8
nop dword [rax]
nop word [rax + rax]
mov rbx, qword [r9]
mov r8, r11
lea rax, [rbx + 0x78]
sub r8, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1800244a3
inc rax
test ecx, ecx
jne 0x180024490
test edx, edx
je 0x1800245be
inc r10
add r9, 8
cmp r10, rdi
jl 0x180024480
mov rcx, qword [rsp + 0x40]
mov r9d, dword [r14 + 8]
mov rdx, r11
mov r8d, dword [r14 + 4]
btr r9d, 9
call fcn.180021ca0
mov ecx, dword [r14 + 0x20]
mov rbx, rax
mov rdi, qword [rsp + 0x40]
mov dword [rax + 0x34], ecx
mov ecx, dword [r14 + 0x24]
mov dword [rax + 0x38], ecx
mov byte [rsi], 1
mov eax, dword [rbx + 0x28]
cmp dword [r14 + 4], eax
jne 0x18002465f
mov r8d, dword [r14 + 0x20]
mov eax, dword [rbx]
dec r8d
neg eax
and r8d, eax
add r8d, dword [rbx]
mov dword [rbx], r8d
mov eax, dword [r14 + 0x20]
cmp eax, dword [rbx + 0x34]
jbe 0x180024517
mov dword [rbx + 0x34], eax
mov dword [rsi - 4], r8d
mov qword [rsi - 0xc], rbx
cmp dword [r14 + 4], 8
mov ebp, dword [r14 + 0x14]
je 0x180024616
mov edx, dword [rsp + 0x50]
xor r8d, r8d
add edx, dword [r14 + 0x10]
mov ecx, r15d
call fcn.18004a3d8
cmp dword [rbx + 0x28], 8
mov esi, dword [rbx]
lea rdi, [rsi + rbp]
je 0x18002455f
mov eax, dword [rbx + 0x10]
cmp rdi, rax
jbe 0x18002455f
mov edx, edi
mov rcx, rbx
call fcn.180021f40
cmp dword [rbx + 0x34], 1
mov dword [rbx], edi
jge 0x18002456e
mov dword [rbx + 0x34], 1
mov rdi, qword [rbx + 8]
add rdi, rsi
xor esi, esi
nop word [rax + rax]
mov rax, qword [0x180094a68]
mov ebx, ebp
sub ebx, esi
test rax, rax
je 0x1800245a0
mov r8d, ebx
mov rdx, rdi
mov ecx, r15d
call rax
cmp eax, 0xffffffff
jne 0x1800245ae
mov r8d, ebx
mov rdx, rdi
mov ecx, r15d
call fcn.180048dcc
cdqe
cmp rax, 1
jl 0x18002461a
add rsi, rax
add rdi, rax
jmp 0x180024580
mov r8d, 0xd
lea rdx, str..gnu.linkonce
mov rcx, r11
call fcn.180042cd0
test eax, eax
jne 0x1800245dd
mov byte [rsi + 1], 1
jmp 0x180024626
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rdi + 0x598]
test rcx, rcx
je 0x1800244ea
cmp rbx, rcx
mov eax, r12d
cmovne eax, dword [rsp + 0x58]
cmp rbx, qword [rcx + 0x50]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x5c]
cmove eax, r12d
mov dword [rsp + 0x5c], eax
jmp 0x1800244ea
add dword [rbx], ebp
jmp 0x180024622
mov rsi, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x54]
mov edi, 1
mov rdx, qword [rsp + 0x48]
mov ecx, 0x1c182
movzx eax, word [rsp + 0xc8]
add rsi, 0x10
inc r12d
mov qword [rsp + 0x80], rsi
add r14, 0x28
cmp r12d, eax
jge 0x1800246ac
mov r9, qword [rsp + 0x60]
jmp 0x180024374
cmp dword [0x18009142c], 0
jne 0x18002467f
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x18009142c], 1
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, str.invalid_section_type
mov qword [0x180091250], rdi
call fcn.180032f10
mov r12, qword [rsp + 0x90]
jmp 0x1800249af
movsxd rax, dword [rsp + 0x58]
test eax, eax
je 0x180024706
movsxd r8, dword [rsp + 0x5c]
test r8d, r8d
je 0x180024706
mov rdx, rax
add rdx, rdx
mov rax, qword [r13 + rdx*8]
mov rcx, qword [rax + 8]
mov r9d, dword [rax]
mov rax, r8
mov r8d, dword [r13 + rdx*8 + 8]
add rax, rax
add r9, rcx
add r8, rcx
mov r10d, dword [r13 + rax*8 + 8]
cmp r8, r9
jae 0x180024706
nop dword [rax]
mov eax, dword [r8]
test eax, eax
je 0x1800246fd
add eax, r10d
mov dword [r8], eax
add r8, 0xc
cmp r8, r9
jb 0x1800246f0
mov r10d, edi
cmp di, word [rsp + 0xc8]
jae 0x180024786
mov rdx, qword [rsp + 0x48]
lea r9, [r13 + 0x10]
add rdx, 0x2c
mov r8, qword [r9]
test r8, r8
je 0x18002476e
cmp byte [r9 + 0xc], 0
je 0x18002476e
mov eax, dword [rdx + 0x14]
test eax, eax
je 0x180024742
add rax, rax
mov rax, qword [r13 + rax*8]
mov qword [r8 + 0x50], rax
cmp dword [rdx], 9
jne 0x18002476e
mov eax, dword [rdx + 0x18]
add rax, rax
mov rax, qword [r13 + rax*8]
movsxd rcx, dword [rax + 0x24]
mov rax, qword [rsp + 0x40]
mov dword [r8 + 0x30], ecx
mov rax, qword [rax + 0x520]
mov rcx, qword [rax + rcx*8]
mov qword [rcx + 0x58], r8
movzx eax, word [rsp + 0xc8]
inc r10d
add r9, 0x10
add rdx, 0x28
cmp r10d, eax
jl 0x180024720
movsxd r15, dword [rsp + 0x68]
lea ebx, [r15*4]
mov ecx, ebx
mov edi, ebx
call fcn.180046850
mov r12, rax
test ebx, ebx
je 0x1800247b9
test rax, rax
je 0x180024a84
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.1800586e0
mov rbx, qword [rsp + 0x70]
mov r14d, 1
add rbx, 0x10
cmp r15, r14
jle 0x180024889
mov rbp, qword [rsp + 0x78]
mov edi, r14d
mov edx, 0xfefe
nop
movzx ecx, word [rbx + 0xe]
lea eax, [rcx - 1]
cmp ax, dx
ja 0x18002483a
mov eax, ecx
add rax, rax
cmp byte [r13 + rax*8 + 0xd], 0
je 0x180024820
test byte [rbx + 0xc], 0xf0
je 0x180024879
mov rax, qword [rsp + 0x40]
mov edx, dword [rbx]
add rdx, rbp
mov rcx, qword [rax + 0x590]
call fcn.180022460
mov edx, 0xfefe
test eax, eax
je 0x180024879
jmp 0x180024875
mov rcx, qword [r13 + rax*8]
test rcx, rcx
je 0x180024879
movzx ecx, word [rcx + 0x24]
mov word [rbx + 0xe], cx
mov eax, dword [r13 + rax*8 + 8]
add dword [rbx + 4], eax
mov edx, dword [rbx]
movzx r9d, byte [rbx + 0xc]
add rdx, rbp
mov r8d, dword [rbx + 8]
movzx eax, cx
movzx ecx, byte [rbx + 0xd]
mov qword [rsp + 0x30], rdx
mov edx, dword [rbx + 4]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rax + 0x590]
call fcn.180022630
mov edx, 0xfefe
mov dword [r12 + rdi*4], eax
inc rdi
add rbx, 0x10
cmp rdi, r15
jl 0x1800247e0
movzx r10d, word [rsp + 0xc8]
mov ebp, r14d
cmp r14w, r10w
jae 0x1800249ba
mov rdi, qword [rsp + 0x48]
lea r11, [r13 + 0x10]
add rdi, 0x44
nop dword [rax]
mov r8, qword [r11]
test r8, r8
je 0x180024947
cmp dword [r8 + 0x28], 9
jne 0x180024947
movsxd rcx, dword [r11 + 8]
mov rdx, qword [r8 + 8]
mov eax, dword [rdi]
add rax, rax
mov esi, dword [r13 + rax*8 + 8]
mov rax, rcx
shr rax, 3
lea rbx, [rdx + rax*8]
mov eax, dword [rdi - 8]
add eax, ecx
movsxd r9, eax
and r9, 0xfffffffffffffff8
lea rax, [r9 + rdx]
cmp rbx, rax
jae 0x180024947
nop dword [rax]
mov edx, dword [rbx + 4]
mov eax, edx
shr eax, 8
cmp eax, r15d
jae 0x18002495f
mov ecx, dword [r12 + rax*4]
test ecx, ecx
jne 0x180024921
mov eax, dword [rdi]
add rax, rax
cmp byte [r13 + rax*8 + 0xd], cl
je 0x18002495f
add dword [rbx], esi
shl ecx, 8
movzx eax, dl
add ecx, eax
mov dword [rbx + 4], ecx
add rbx, 8
mov rcx, qword [r8 + 8]
add rcx, r9
cmp rbx, rcx
jb 0x180024900
movzx r10d, word [rsp + 0xc8]
inc ebp
movzx eax, r10w
add rdi, 0x28
add r11, 0x10
cmp ebp, eax
jl 0x1800248b0
jmp 0x1800249ba
cmp dword [0x18009142c], 0
jne 0x18002497c
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x18009142c], r14d
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r8d, dword [rdi - 0x1c]
lea rcx, str.Invalid_relocation_entry___2d___s____.8x
mov rax, qword [rsp + 0x40]
mov edx, ebp
add r8, qword [rsp + 0x60]
mov r9d, dword [rbx]
mov qword [0x180091250], rax
call fcn.180032f10
mov dword [rsp + 0x88], 0xffffffff
mov rcx, qword [rsp + 0x70]
call fcn.1800439ec
mov rcx, qword [rsp + 0x78]
call fcn.1800439ec
mov rcx, r12
call fcn.1800439ec
mov rcx, r13
call fcn.1800439ec
mov rcx, qword [rsp + 0x60]
call fcn.1800439ec
mov rcx, qword [rsp + 0x48]
call fcn.1800439ec
mov eax, dword [rsp + 0x88]
mov r12, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0x138]
mov rdi, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1800368f0
add rsp, 0x100
pop r15
pop rsi
pop rbx
ret
cmp dword [0x18009142c], 0
jne 0x180024a5d
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x18009142c], 1
lea rcx, [0x180091190]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, str.invalid_object_file
mov qword [0x180091250], rbx
call fcn.180032f10
mov eax, 0xffffffff
jmp 0x180024a21
lea rcx, str.memory_full__malloc_
call fcn.180032f40
int3