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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
movsxd rbp, edx
mov edi, r8d
mov rsi, rcx
test edx, edx
js 0x180029f59
lea eax, [rbp + 0x6c]
cmp eax, dword [rcx + 0x30]
jle 0x180029f73
mov r8d, 0xa52
lea rdx, str.D:ProgCpayday3_internal_dx12imguiimgui_draw.cpp
lea rcx, str.x___0__x__w___atlas__TexWidth
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
test edi, edi
js 0x180029f7f
lea eax, [rdi + 0x1b]
cmp eax, dword [rsi + 0x34]
jle 0x180029f99
mov r8d, 0xa53
lea rdx, str.D:ProgCpayday3_internal_dx12imguiimgui_draw.cpp
lea rcx, str.y___0__y__h___atlas__TexHeight
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
imul edi, dword [rsi + 0x30]
mov r10d, 0x1b
mov rax, qword [rsi + 0x28]
movzx r8d, byte [rsp + 0x60]
movsxd rcx, edi
mov edi, 0xffffffff
add rcx, rbp
lea r9, [rax + rcx*4]
lea rax, [0x18005ac92]
nop dword [rax]
nop word [rax + rax]
lea rdx, [r9 + 8]
mov r11d, 2
nop word [rax + rax]
xor ecx, ecx
cmp byte [rax - 2], r8b
cmove ecx, edi
mov dword [rdx - 8], ecx
xor ecx, ecx
cmp byte [rax - 1], r8b
cmove ecx, edi
mov dword [rdx - 4], ecx
xor ecx, ecx
cmp byte [rax], r8b
cmove ecx, edi
mov dword [rdx], ecx
xor ecx, ecx
cmp byte [rax + 1], r8b
cmove ecx, edi
mov dword [rdx + 4], ecx
xor ecx, ecx
cmp byte [rax + 2], r8b
cmove ecx, edi
mov dword [rdx + 8], ecx
xor ecx, ecx
cmp byte [rax + 3], r8b
cmove ecx, edi
mov dword [rdx + 0xc], ecx
xor ecx, ecx
cmp byte [rax + 4], r8b
cmove ecx, edi
mov dword [rdx + 0x10], ecx
xor ecx, ecx
cmp byte [rax + 5], r8b
cmove ecx, edi
mov dword [rdx + 0x14], ecx
xor ecx, ecx
cmp byte [rax + 6], r8b
cmove ecx, edi
mov dword [rdx + 0x18], ecx
xor ecx, ecx
cmp byte [rax + 7], r8b
cmove ecx, edi
mov dword [rdx + 0x1c], ecx
xor ecx, ecx
cmp byte [rax + 8], r8b
cmove ecx, edi
mov dword [rdx + 0x20], ecx
xor ecx, ecx
cmp byte [rax + 9], r8b
cmove ecx, edi
mov dword [rdx + 0x24], ecx
xor ecx, ecx
cmp byte [rax + 0xa], r8b
cmove ecx, edi
mov dword [rdx + 0x28], ecx
xor ecx, ecx
cmp byte [rax + 0xb], r8b
cmove ecx, edi
mov dword [rdx + 0x2c], ecx
xor ecx, ecx
cmp byte [rax + 0xc], r8b
cmove ecx, edi
mov dword [rdx + 0x30], ecx
xor ecx, ecx
cmp byte [rax + 0xd], r8b
cmove ecx, edi
mov dword [rdx + 0x34], ecx
xor ecx, ecx
cmp byte [rax + 0xe], r8b
cmove ecx, edi
mov dword [rdx + 0x38], ecx
xor ecx, ecx
cmp byte [rax + 0xf], r8b
cmove ecx, edi
mov dword [rdx + 0x3c], ecx
xor ecx, ecx
cmp byte [rax + 0x10], r8b
cmove ecx, edi
mov dword [rdx + 0x40], ecx
xor ecx, ecx
cmp byte [rax + 0x11], r8b
cmove ecx, edi
mov dword [rdx + 0x44], ecx
xor ecx, ecx
cmp byte [rax + 0x12], r8b
cmove ecx, edi
mov dword [rdx + 0x48], ecx
xor ecx, ecx
cmp byte [rax + 0x13], r8b
cmove ecx, edi
mov dword [rdx + 0x4c], ecx
xor ecx, ecx
cmp byte [rax + 0x14], r8b
cmove ecx, edi
mov dword [rdx + 0x50], ecx
xor ecx, ecx
cmp byte [rax + 0x15], r8b
cmove ecx, edi
mov dword [rdx + 0x54], ecx
xor ecx, ecx
cmp byte [rax + 0x16], r8b
cmove ecx, edi
mov dword [rdx + 0x58], ecx
xor ecx, ecx
cmp byte [rax + 0x17], r8b
cmove ecx, edi
mov dword [rdx + 0x5c], ecx
xor ecx, ecx
cmp byte [rax + 0x18], r8b
cmove ecx, edi
mov dword [rdx + 0x60], ecx
xor ecx, ecx
cmp byte [rax + 0x19], r8b
cmove ecx, edi
mov dword [rdx + 0x64], ecx
xor ecx, ecx
cmp byte [rax + 0x1a], r8b
cmove ecx, edi
mov dword [rdx + 0x68], ecx
xor ecx, ecx
cmp byte [rax + 0x1b], r8b
cmove ecx, edi
mov dword [rdx + 0x6c], ecx
xor ecx, ecx
cmp byte [rax + 0x1c], r8b
cmove ecx, edi
mov dword [rdx + 0x70], ecx
xor ecx, ecx
cmp byte [rax + 0x1d], r8b
cmove ecx, edi
mov dword [rdx + 0x74], ecx
xor ecx, ecx
cmp byte [rax + 0x1e], r8b
cmove ecx, edi
mov dword [rdx + 0x78], ecx
xor ecx, ecx
cmp byte [rax + 0x1f], r8b
cmove ecx, edi
mov dword [rdx + 0x7c], ecx
xor ecx, ecx
cmp byte [rax + 0x20], r8b
cmove ecx, edi
mov dword [rdx + 0x80], ecx
xor ecx, ecx
cmp byte [rax + 0x21], r8b
cmove ecx, edi
mov dword [rdx + 0x84], ecx
xor ecx, ecx
cmp byte [rax + 0x22], r8b
cmove ecx, edi
mov dword [rdx + 0x88], ecx
xor ecx, ecx
cmp byte [rax + 0x23], r8b
cmove ecx, edi
mov dword [rdx + 0x8c], ecx
xor ecx, ecx
cmp byte [rax + 0x24], r8b
cmove ecx, edi
mov dword [rdx + 0x90], ecx
xor ecx, ecx
cmp byte [rax + 0x25], r8b
cmove ecx, edi
mov dword [rdx + 0x94], ecx
xor ecx, ecx
cmp byte [rax + 0x26], r8b
cmove ecx, edi
mov dword [rdx + 0x98], ecx
lea rdx, [rdx + 0xd8]
xor ecx, ecx
cmp byte [rax + 0x27], r8b
cmove ecx, edi
mov dword [rdx - 0x3c], ecx
xor ecx, ecx
cmp byte [rax + 0x28], r8b
cmove ecx, edi
mov dword [rdx - 0x38], ecx
xor ecx, ecx
cmp byte [rax + 0x29], r8b
cmove ecx, edi
mov dword [rdx - 0x34], ecx
xor ecx, ecx
cmp byte [rax + 0x2a], r8b
cmove ecx, edi
mov dword [rdx - 0x30], ecx
xor ecx, ecx
cmp byte [rax + 0x2b], r8b
cmove ecx, edi
mov dword [rdx - 0x2c], ecx
xor ecx, ecx
cmp byte [rax + 0x2c], r8b
cmove ecx, edi
mov dword [rdx - 0x28], ecx
xor ecx, ecx
cmp byte [rax + 0x2d], r8b
cmove ecx, edi
mov dword [rdx - 0x24], ecx
xor ecx, ecx
cmp byte [rax + 0x2e], r8b
cmove ecx, edi
mov dword [rdx - 0x20], ecx
xor ecx, ecx
cmp byte [rax + 0x2f], r8b
cmove ecx, edi
mov dword [rdx - 0x1c], ecx
xor ecx, ecx
cmp byte [rax + 0x30], r8b
cmove ecx, edi
mov dword [rdx - 0x18], ecx
xor ecx, ecx
cmp byte [rax + 0x31], r8b
cmove ecx, edi
mov dword [rdx - 0x14], ecx
xor ecx, ecx
cmp byte [rax + 0x32], r8b
cmove ecx, edi
mov dword [rdx - 0x10], ecx
xor ecx, ecx
cmp byte [rax + 0x33], r8b
cmove ecx, edi
add rax, 0x36
mov dword [rdx - 0xc], ecx
sub r11, 1
jne 0x180029fe0
movsxd rcx, dword [rsi + 0x30]
lea r9, [r9 + rcx*4]
sub r10, 1
jne 0x180029fd0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret