Function at 0x180001560
Capabilities:
Enumerate pe sections
Print debug messages
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x200
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x180022010]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov rbx, rcx
mov edx, 0xffffffff
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x43c]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [rbx]
xor esi, esi
mov edx, dword [rax + 0x430]
test edx, edx
je 0x180001da3
mov rax, qword [rbx]
mov ecx, dword [rax + 0x430]
mov rax, qword [rbx]
mov edx, dword [rbx + 0x10]
mov ecx, dword [rax + 0x430]
cmp ecx, edx
jle 0x180001695
mov rax, qword [rbx]
movsxd rax, dword [rax + 0x430]
cmp qword [rbx + 8], rsi
jne 0x180001602
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.180009988
jmp 0x180001613
mov rcx, qword [rbx + 8]
lea rdx, [rax + rax*2]
shl rdx, 3
call fcn.180009990
mov qword [rbx + 8], rax
test rax, rax
jne 0x180001640
lea rcx, str.Failure_allocating_memory_for_texturedata
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x43c]
call qword [sym.imp.KERNEL32.dll_SetEvent]
xor eax, eax
jmp 0x180001dce
mov rax, qword [rbx]
movsxd r8, dword [rbx + 0x10]
mov ecx, dword [rax + 0x430]
cmp r8d, ecx
jge 0x180001687
lea rdx, [r8 + r8*2]
shl rdx, 3
nop word [rax + rax]
mov rax, qword [rbx + 8]
lea rdx, [rdx + 0x18]
inc r8d
mov qword [rdx + rax - 0x18], rsi
mov rax, qword [rbx + 8]
mov qword [rdx + rax - 8], rsi
mov rax, qword [rbx]
mov ecx, dword [rax + 0x430]
cmp r8d, ecx
jl 0x180001660
mov rax, qword [rbx]
mov ecx, dword [rax + 0x430]
mov edx, ecx
mov dword [rbx + 0x10], ecx
mov r12d, esi
test edx, edx
jle 0x180001da3
mov rdi, rsi
mov rax, qword [rbx + 0x20]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x180001d5b
mov rax, qword [rbx + 0x20]
mov ecx, dword [rdi + rax + 0x14]
test ecx, ecx
jne 0x1800016ce
mov rax, qword [rbx + 8]
cmp qword [rdi + rax], rsi
jne 0x180001d92
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x1800016ed
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rbx + 8]
mov qword [rdi + rax], rsi
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax + 0x10]
test rcx, rcx
je 0x180001709
call fcn.180009998
mov rax, qword [rbx + 8]
mov qword [rdi + rax + 0x10], rsi
mov rax, qword [rbx + 8]
xor ecx, ecx
movsxd r13, r12d
mov qword [rbp - 0x80], rcx
mov r9d, 0xffffffff
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x70], rcx
mov dword [rbp - 0x68], ecx
lea r14, [r13*2]
mov rcx, qword [rbx + 0x20]
add r14, r13
mov rdx, rcx
mov r8d, dword [rdi + rcx + 0x10]
lea rax, [rax + r14*8]
mov rdx, qword [rdi + rcx]
mov rcx, qword [rbx + 0x60]
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], 0xffffffff
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileInMemoryEx]
test eax, eax
jns 0x1800018d7
mov rax, qword [rbx + 8]
mov r9d, 0xffffffff
lea rcx, [rax + r14*8]
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x70], rcx
mov rdx, rax
mov qword [rsp + 0x68], rsi
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x60], rcx
mov r8d, dword [rdi + rax + 0x10]
mov rdx, qword [rdi + rax]
mov rcx, qword [rbx + 0x60]
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], 0xffffffff
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileInMemoryEx]
test eax, eax
jns 0x1800018d7
mov rax, qword [rbx + 8]
mov r9d, 0xffffffff
lea rcx, [rax + r14*8]
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x70], rcx
mov rdx, rax
mov qword [rsp + 0x68], rsi
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x60], rcx
mov r8d, dword [rdi + rax + 0x10]
mov rdx, qword [rdi + rax]
mov rcx, qword [rbx + 0x60]
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], 0xffffffff
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileInMemoryEx]
test eax, eax
jns 0x1800018d7
mov rax, qword [rbx + 8]
lea r9, [rax + r14*8]
mov rax, qword [rbx + 0x20]
mov rdx, rax
mov r8d, dword [rdi + rax + 0x10]
mov rdx, qword [rdi + rax]
mov rcx, qword [rbx + 0x60]
call qword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileInMemory]
mov r15d, eax
mov rax, qword [rbx + 8]
test r15d, r15d
js 0x180001e03
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x1800018d7
mov rax, qword [rcx]
lea r8, [rbp - 0x60]
xor edx, edx
call qword [rax + 0x88]
mov eax, dword [rbp - 0x48]
mov dword [rbp - 0x80], eax
mov eax, dword [rbp - 0x44]
mov dword [rbp - 0x7c], eax
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x180001d50
mov rax, qword [rcx]
lea r8, [rbp - 0x40]
xor edx, edx
call qword [rax + 0x88]
mov eax, dword [rbp - 0x80]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, rax
mov rax, qword [rbx + 8]
movss dword [rdi + rax + 8], xmm0
mov eax, dword [rbp - 0x7c]
cvtsi2ss xmm1, rax
mov rax, qword [rbx + 8]
movss dword [rdi + rax + 0xc], xmm1
mov rax, qword [rbx + 0x20]
mov rcx, qword [rdi + rax + 8]
test rcx, rcx
je 0x180001d50
mov ecx, 0x308
xorps xmm6, xmm6
call fcn.180009988
mov rcx, rax
mov rax, qword [rbx + 8]
mov qword [rdi + rax + 0x10], rcx
mov rax, qword [rbx + 8]
cmp qword [rdi + rax + 0x10], rsi
je 0x180001ec5
mov rax, qword [rbx + 0x20]
mov r8d, 0x10
mov rdx, qword [rdi + rax + 8]
movzx eax, word [rdx]
add rdx, 4
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx], xmm0
nop word [rax + rax]
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 - 8], xmm6
movzx eax, word [rdx - 2]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 - 4], xmm0
movzx eax, word [rdx - 2]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8], xmm6
movzx eax, word [rdx]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 4], xmm0
movzx eax, word [rdx]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 8], xmm6
movzx eax, word [rdx + 2]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0xc], xmm0
movzx eax, word [rdx + 2]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x10], xmm6
movzx eax, word [rdx + 4]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x14], xmm0
movzx eax, word [rdx + 4]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x18], xmm6
movzx eax, word [rdx + 6]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x1c], xmm0
movzx eax, word [rdx + 6]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x20], xmm6
movzx eax, word [rdx + 8]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x24], xmm0
movzx eax, word [rdx + 8]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x28], xmm6
movzx eax, word [rdx + 0xa]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x2c], xmm0
movzx eax, word [rdx + 0xa]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x30], xmm6
movzx eax, word [rdx + 0xc]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x34], xmm0
movzx eax, word [rdx + 0xc]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x38], xmm6
movzx eax, word [rdx + 0xe]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x3c], xmm0
movzx eax, word [rdx + 0xe]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x40], xmm6
movzx eax, word [rdx + 0x10]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x44], xmm0
movzx eax, word [rdx + 0x10]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x48], xmm6
movzx eax, word [rdx + 0x12]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x4c], xmm0
movzx eax, word [rdx + 0x12]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x50], xmm6
movzx eax, word [rdx + 0x14]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x54], xmm0
movzx eax, word [rdx + 0x14]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x58], xmm6
movzx eax, word [rdx + 0x16]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x5c], xmm0
movzx eax, word [rdx + 0x16]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x60], xmm6
movzx eax, word [rdx + 0x18]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x64], xmm0
movzx eax, word [rdx + 0x18]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x68], xmm6
movzx eax, word [rdx + 0x1a]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x6c], xmm0
movzx eax, word [rdx + 0x1a]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
addss xmm6, xmm0
movss dword [rcx + r8 + 0x70], xmm6
movzx eax, word [rdx + 0x1c]
movd xmm0, eax
mov rax, qword [rbx + 8]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + r8 + 0x74], xmm0
sub r8, 0xffffffffffffff80
movzx eax, word [rdx + 0x1c]
add rdx, 0x20
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm6, xmm0
cmp r8, 0x310
jl 0x180001990
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax + 0x10]
movss dword [rcx + 4], xmm6
mov rax, qword [rbx + 0x20]
mov dword [rax + r14*8 + 0x14], esi
jmp 0x180001d92
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x180001d7a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rbx + 8]
mov qword [rdi + rax], rsi
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + rax + 0x10]
test rcx, rcx
je 0x180001d92
call fcn.180009998
mov rax, qword [rbx + 8]
mov qword [rdi + rax + 0x10], rsi
inc r12d
add rdi, 0x18
cmp r12d, dword [rbx + 0x10]
jl 0x1800016a3
mov rcx, qword [rbx]
mov edx, dword [rcx + 0x42c]
test edx, edx
je 0x180001db9
mov rcx, qword [rbx]
xchg dword [rcx + 0x42c], esi
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x43c]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, 1
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.180004600
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rdx, [r13*2]
mov r9d, r15d
add rdx, r13
lea r8, str.Failure_creating_a_texture.___x__AOT_p_size_d
mov qword [rax + rdx*8], rsi
mov rax, qword [rbx + 0x20]
mov rcx, rax
mov eax, dword [rax + rdx*8 + 0x10]
mov dword [rsp + 0x28], eax
mov rax, qword [rcx + rdx*8]
mov edx, 0xfe
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x20], rax
call fcn.180004390
cmp r15d, 0x8876086a
je 0x180001e8a
cmp r15d, 0x8876017c
jne 0x180001e5d
lea r8, str._s___D3DERR_OUTOFVIDEOMEMORY
jmp 0x180001e91
cmp r15d, 0x8876086c
jne 0x180001e6f
lea r8, str._s___D3DERR_INVALIDCALL
jmp 0x180001e91
cmp r15d, 0x88760b59
jne 0x180001e81
lea r8, str._s___D3DXERR_INVALIDDATA
jmp 0x180001e91
cmp r15d, 0x8007000e
jne 0x180001ea3
lea r8, str._s___D3DERR_NOTAVAILABLE
lea r9, [rbp - 0x20]
mov edx, 0xfe
lea rcx, [rbp - 0x20]
call fcn.180004390
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rbx]
mov rcx, qword [rcx + 0x43c]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, r15d
jmp 0x180001dce
lea rcx, str.Failure_allocating_memory_for_fontmap
jmp 0x180001623