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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x150], xmm9
movzx edi, byte [rcx]
mov edx, edx
mov r14, r8
mov rax, rcx
mov r8d, 0xfffffffe
lea rbx, [rcx + rdx]
lea edx, [rdi - 0x20]
mov qword [rsp + 0x28], rbx
cmp dl, 0x38
ja 0x22db3f4a3
movabs rcx, 0xfebf7ffffffffffe
bt rcx, rdx
jb 0x22db3f4a3
cmp dword [rax + 4], 0x95
lea rsi, [rax + 8]
jbe 0x22db3fa2a
lea rax, [r14 + 0x64]
lea r13, [rsp + 0xc0]
mov qword [rsp + 0x50], rax
cmp rbx, rsi
ja 0x22db3eb3b
jmp 0x22db3ec5c
lea rdx, str.XYZI
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x22db3f4dc
lea rdx, str.RGBA
mov rcx, r13
lea rbx, [rsi + 0xc]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x22db3f5f5
mov eax, edi
lea rsi, [rbx + rax]
nop dword [rax + rax]
cmp rsi, qword [rsp + 0x28]
jae 0x22db3ec5c
mov eax, dword [rsi]
lea rdx, str.SIZE
mov rcx, r13
mov edi, dword [rsi + 4]
mov byte [rsp + 0xc4], 0
mov dword [rsp + 0xc0], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x22db3eaf0
mov ecx, dword [rsi + 0xc]
mov eax, dword [rsi + 0x14]
add rsi, 0x18
mov r8d, dword [rsi - 8]
mov edx, ecx
neg edx
and edx, 0xf
add edx, ecx
mov ecx, eax
neg ecx
mov ebx, edx
movd xmm0, edx
and ecx, 0xf
sar ebx, 4
add ecx, eax
mov eax, r8d
movd xmm2, ebx
mov r9d, ecx
neg eax
sar r9d, 4
and eax, 0xf
add eax, r8d
imul ebx, r9d
mov dword [r14 + 0x10], r9d
mov r8d, eax
movd xmm1, eax
mov eax, r9d
sar r8d, 4
punpckldq xmm1, xmm2
movd xmm2, ecx
imul ebx, r8d
punpckldq xmm0, xmm2
mov dword [r14 + 0x14], r8d
imul eax, r8d
punpcklqdq xmm0, xmm1
movups xmmword [r14], xmm0
mov edi, ebx
mov dword [r14 + 0x24], eax
shl edi, 4
movsxd rcx, edi
call sub.msvcrt.dll_malloc
mov dword [r14 + 0x20], edi
mov qword [r14 + 0x18], rax
mov dword [r14 + 0x2c], ebx
mov dword [r14 + 0x28], 0
test ebx, ebx
jle 0x22db3eb30
mov qword [rax], 0
mov dword [rax + 8], 0
cmp ebx, 1
je 0x22db3eb30
movsxd rdx, ebx
mov eax, 0x10
shl rdx, 4
nop word [rax + rax]
mov rcx, qword [r14 + 0x18]
mov qword [rcx + rax], 0
mov rcx, qword [r14 + 0x18]
mov dword [rcx + rax + 8], 0
add rax, 0x10
cmp rax, rdx
jne 0x22db3ec30
cmp rsi, qword [rsp + 0x28]
jb 0x22db3eb3b
mov ecx, 0x9000
call sub.msvcrt.dll_malloc
mov rbx, qword [0x22dd7da50]
mov ecx, 0x1800
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rbx
call sub.msvcrt.dll_malloc
mov qword [r14 + 0x48], rbx
mov ecx, 0x3000
mov qword [r14 + 0x40], rax
call sub.msvcrt.dll_malloc
mov r15d, dword [r14]
mov qword [r14 + 0x58], rbx
mov qword [r14 + 0x50], rax
test r15d, r15d
js 0x22db3f4a0
mov r8d, dword [r14 + 8]
mov dword [rsp + 0x6c], 0xffffffff
mov rsi, r14
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x28], 0
mov r9d, r8d
nop word [rax + rax]
test r9d, r9d
js 0x22db3f484
mov eax, dword [rsp + 0x28]
mov r13d, dword [rsi + 4]
xor r14d, r14d
mov r12d, r9d
mov dword [rsp + 0x58], r14d
mov r14d, r15d
mov ebx, eax
shl eax, 8
mov r8d, r13d
mov dword [rsp + 0x38], 0xffffffff
and eax, 0xf00
sar ebx, 4
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x78], ebx
mov ebx, eax
shr ebx, 0x1f
mov dword [rsp + 0x50], ebx
mov ebx, eax
shl eax, 8
and eax, 0xf00
sar ebx, 4
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x98], ebx
mov ebx, eax
shl eax, 8
sar ebx, 4
and eax, 0xf00
mov dword [rsp + 0x9c], ebx
mov dword [rsp + 0x94], eax
test r8d, r8d
js 0x22db3f47e
nop word [rax + rax]
mov edi, dword [rsp + 0x58]
mov ebx, dword [rsp + 0x8c]
xor r13d, r13d
movss xmm8, dword [0x22dd7da58]
mov eax, edi
mov ecx, ebx
sar eax, 4
mov dword [rsp + 0x64], eax
mov eax, edi
add edi, 1
shl eax, 4
mov dword [rsp + 0x40], edi
sar edi, 4
movzx edx, al
add eax, 0x10
mov dword [rsp + 0x74], edi
movzx eax, al
or ecx, edx
or eax, ebx
mov dword [rsp + 0x60], ecx
mov ecx, dword [rsp + 0x90]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x38]
or ecx, edx
or edx, dword [rsp + 0x94]
mov edi, eax
shl eax, 4
mov dword [rsp + 0x7c], ecx
movzx eax, al
sar edi, 4
mov dword [rsp + 0x80], edx
or eax, ebx
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x84], eax
mov eax, r8d
jmp 0x22db3ee01
cmp eax, r13d
jl 0x22db3f460
mov ebx, dword [rsp + 0x28]
cmp eax, r13d
movd xmm5, r13d
mov r8d, r13d
setle cl
cmp ebx, r14d
movd xmm1, ebx
setge dl
punpckldq xmm1, xmm5
add r13d, 1
or dl, cl
cvtdq2ps xmm1, xmm1
jne 0x22db3edf8
cmp dword [rsp + 0x58], r12d
jge 0x22db3edf8
mov r15d, dword [rsi + 0x10]
mov r10d, dword [rsi + 0x24]
movd ebp, xmm5
movd ebx, xmm5
mov edi, dword [rsp + 0x78]
mov r11d, dword [rsp + 0x64]
sar ebp, 4
and ebx, 0xf
mov r9, qword [rsi + 0x18]
mov dword [rsp + 0x5c], ebx
imul edi, r10d
imul r11d, r15d
mov dword [rsp + 0x68], edi
add edi, r11d
lea edx, [rbp + rdi]
movsxd rdx, edx
shl rdx, 4
mov rcx, qword [r9 + rdx]
test rcx, rcx
je 0x22db3edf8
mov edx, dword [rsp + 0x60]
add edx, ebx
movsxd rdx, edx
movzx ecx, byte [rcx + rdx]
mov byte [rsp + 0x30], cl
test cl, cl
je 0x22db3edf8
cmp byte [rsp + 0x50], 0
mov edx, 1
jne 0x22db3eeb1
cmp dword [rsp + 0x6c], r14d
jl 0x22db3f950
xor ecx, ecx
cmp dword [rsp + 0x48], r14d
jl 0x22db3f910
mov r11d, r8d
xor r10d, r10d
sub r11d, 1
js 0x22db3eed3
cmp eax, r11d
jg 0x22db3f990
cmp eax, r13d
jg 0x22db3f8c0
mov edi, dword [rsp + 0x38]
xor ebx, ebx
test edi, edi
js 0x22db3f9c8
xor edi, edi
cmp dword [rsp + 0x38], r12d
jge 0x22db3ef27
mov r11d, dword [rsp + 0x70]
imul r11d, r15d
add r11d, dword [rsp + 0x68]
add r11d, ebp
movsxd r11, r11d
shl r11, 4
mov r11, qword [r9 + r11]
test r11, r11
je 0x22db3ef27
mov edi, dword [rsp + 0x5c]
add edi, dword [rsp + 0x84]
movsxd rdi, edi
movzx edi, byte [r11 + rdi]
xor r11d, r11d
cmp r12d, dword [rsp + 0x40]
jle 0x22db3ef64
imul r15d, dword [rsp + 0x74]
add r15d, dword [rsp + 0x68]
add r15d, ebp
movsxd r15, r15d
shl r15, 4
mov r9, qword [r9 + r15]
test r9, r9
je 0x22db3ef64
mov r11d, dword [rsp + 0x5c]
add r11d, dword [rsp + 0x88]
movsxd r11, r11d
movzx r11d, byte [r9 + r11]
mov r9d, edx
or r9d, 2
test cl, cl
cmove edx, r9d
mov ecx, edx
or ecx, 4
test r10b, r10b
cmove edx, ecx
mov ecx, edx
or ecx, 8
test bl, bl
cmove edx, ecx
test dil, dil
jne 0x22db3f650
or edx, 0x10
test r11b, r11b
jne 0x22db3ef9a
or edx, 0x20
pxor xmm4, xmm4
pxor xmm3, xmm3
mov ecx, 0xc
xor eax, eax
cvtsi2ss xmm4, dword [rsp + 0x28]
lea rbx, [rsp + 0xc0]
movzx ebp, dl
mov qword [rsp + 0xa0], 0
cvtsi2ss xmm3, r8d
mov rdi, rbx
lea r12, [0x22dd7d960]
mov qword [rsp + 0xa8], 0
rep stosq qword [rdi], rax
mov r8d, dword [rsp + 0x58]
mov rdx, r12
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
movss xmm2, dword [0x22dd7da58]
movq xmm5, qword [0x22dd7da58]
movaps xmm6, xmm4
unpcklps xmm6, xmm3
jmp 0x22db3f030
add eax, 1
add rdx, 0x10
cmp eax, 6
je 0x22db3f1e8
bt ebp, eax
jae 0x22db3f020
movsxd rcx, dword [rdx]
mov r10d, dword [rsp + rcx*4 + 0xa0]
test r10d, r10d
jne 0x22db3f086
mov dword [rsp + rcx*4 + 0xa0], 1
lea rdi, [0x22dd7d900]
lea rcx, [rcx + rcx*2]
pxor xmm0, xmm0
movq xmm7, qword [rdi + rcx*4]
cvtsi2ss xmm0, r8d
addss xmm0, dword [rdi + rcx*4 + 8]
addps xmm7, xmm1
mulss xmm0, xmm2
mulps xmm7, xmm5
movlps qword [rbx + rcx*4], xmm7
movss dword [rsp + rcx*4 + 0xc8], xmm0
movsxd rcx, dword [rdx + 4]
mov r9d, dword [rsp + rcx*4 + 0xa0]
test r9d, r9d
jne 0x22db3f0d8
mov dword [rsp + rcx*4 + 0xa0], 1
lea rdi, [0x22dd7d900]
lea rcx, [rcx + rcx*2]
pxor xmm0, xmm0
movq xmm7, qword [rdi + rcx*4]
cvtsi2ss xmm0, r8d
addss xmm0, dword [rdi + rcx*4 + 8]
addps xmm7, xmm6
mulss xmm0, xmm2
mulps xmm7, xmm5
movlps qword [rbx + rcx*4], xmm7
movss dword [rsp + rcx*4 + 0xc8], xmm0
movsxd rcx, dword [rdx + 8]
mov r15d, dword [rsp + rcx*4 + 0xa0]
test r15d, r15d
jne 0x22db3f153
mov dword [rsp + rcx*4 + 0xa0], 1
lea rcx, [rcx + rcx*2]
lea rdi, [0x22dd7d900]
pxor xmm0, xmm0
shl rcx, 2
cvtsi2ss xmm0, r8d
lea r9, [rdi + rcx]
movss xmm7, dword [r9 + 4]
movss xmm9, dword [r9]
addss xmm0, dword [r9 + 8]
addss xmm7, xmm3
addss xmm9, xmm4
mulss xmm0, xmm2
mulss xmm7, xmm2
mulss xmm9, xmm2
movss dword [rsp + rcx + 0xc8], xmm0
movss dword [rsp + rcx + 0xc4], xmm7
movss dword [rsp + rcx + 0xc0], xmm9
movsxd rcx, dword [rdx + 0xc]
mov r14d, dword [rsp + rcx*4 + 0xa0]
test r14d, r14d
jne 0x22db3f020
lea rdi, [0x22dd7d900]
pxor xmm0, xmm0
add eax, 1
add rdx, 0x10
mov dword [rsp + rcx*4 + 0xa0], 1
lea rcx, [rcx + rcx*2]
shl rcx, 2
cvtsi2ss xmm0, r8d
lea r9, [rdi + rcx]
movss xmm7, dword [r9 + 4]
movss xmm9, dword [r9]
addss xmm0, dword [r9 + 8]
addss xmm7, xmm3
addss xmm9, xmm4
mulss xmm0, xmm8
mulss xmm7, xmm8
mulss xmm9, xmm8
movss dword [rsp + rcx + 0xc8], xmm0
movss dword [rsp + rcx + 0xc4], xmm7
movss dword [rsp + rcx + 0xc0], xmm9
cmp eax, 6
jne 0x22db3f030
nop dword [rax]
movzx eax, byte [rsp + 0x30]
mov dword [rsp + 0x5c], r13d
xor r15d, r15d
lea rax, [rsi + rax*4]
mov qword [rsp + 0x30], rax
nop
bt ebp, r15d
jae 0x22db3f42e
movsxd rax, dword [r12]
mov edi, dword [rsi + 0x38]
movsxd r10, dword [r12 + 4]
mov r14d, dword [r12 + 8]
lea rax, [rax + rax*2]
mov r13d, dword [r12 + 0xc]
mov rcx, qword [rsi + 0x30]
movss xmm6, dword [rsp + rax*4 + 0xc8]
movq xmm7, qword [rbx + rax*4]
movsxd rax, edi
cmp edi, dword [rsi + 0x3c]
je 0x22db3f890
lea edx, [rax + 1]
lea rax, [rax + rax*2]
lea rax, [rcx + rax*4]
mov dword [rsi + 0x38], edx
movss dword [rax + 8], xmm6
movlps qword [rax], xmm7
lea rax, [r10 + r10*2]
movss xmm6, dword [rsp + rax*4 + 0xc8]
movq xmm7, qword [rbx + rax*4]
movsxd rax, dword [rsi + 0x38]
cmp eax, dword [rsi + 0x3c]
je 0x22db3f860
mov rdx, qword [rsi + 0x30]
lea ecx, [rax + 1]
lea rax, [rax + rax*2]
movsxd r9, r14d
lea rax, [rdx + rax*4]
mov dword [rsi + 0x38], ecx
movss dword [rax + 8], xmm6
movlps qword [rax], xmm7
lea rax, [r9 + r9*2]
movss xmm6, dword [rsp + rax*4 + 0xc8]
movq xmm7, qword [rbx + rax*4]
movsxd rax, dword [rsi + 0x38]
cmp eax, dword [rsi + 0x3c]
je 0x22db3f830
mov rdx, qword [rsi + 0x30]
lea ecx, [rax + 1]
lea rax, [rax + rax*2]
movsxd r8, r13d
lea rax, [rdx + rax*4]
mov dword [rsi + 0x38], ecx
movss dword [rax + 8], xmm6
movlps qword [rax], xmm7
lea rax, [r8 + r8*2]
movsxd rdx, dword [rsi + 0x38]
movss xmm6, dword [rsp + rax*4 + 0xc8]
movq xmm7, qword [rbx + rax*4]
cmp edx, dword [rsi + 0x3c]
je 0x22db3f808
mov rax, qword [rsi + 0x30]
lea ecx, [rdx + 1]
lea rdx, [rdx + rdx*2]
lea rax, [rax + rdx*4]
mov dword [rsi + 0x38], ecx
movlps qword [rax], xmm7
movss dword [rax + 8], xmm6
mov rax, qword [rsp + 0x30]
movsxd rdx, dword [rsi + 0x58]
mov r13d, dword [rax + 0x60]
cmp edx, dword [rsi + 0x5c]
je 0x22db3f7e0
mov rax, qword [rsi + 0x50]
lea ecx, [rdx + 1]
mov dword [rsi + 0x58], ecx
mov dword [rax + rdx*4], r13d
movsxd rdx, dword [rsi + 0x58]
cmp edx, dword [rsi + 0x5c]
je 0x22db3f7b8
mov rax, qword [rsi + 0x50]
lea ecx, [rdx + 1]
mov dword [rsi + 0x58], ecx
mov dword [rax + rdx*4], r13d
movsxd rdx, dword [rsi + 0x58]
cmp edx, dword [rsi + 0x5c]
je 0x22db3f790
mov rax, qword [rsi + 0x50]
lea ecx, [rdx + 1]
mov dword [rsi + 0x58], ecx
mov dword [rax + rdx*4], r13d
movsxd rdx, dword [rsi + 0x58]
cmp edx, dword [rsi + 0x5c]
je 0x22db3f768
mov rax, qword [rsi + 0x50]
lea ecx, [rdx + 1]
mov dword [rsi + 0x58], ecx
mov dword [rax + rdx*4], r13d
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f740
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
lea r13d, [rdi + 2]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], di
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f718
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
lea r9d, [rdi + 1]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], r13w
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f6e8
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], r9w
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f6c0
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], di
add edi, 3
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f698
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], di
movsxd rdx, dword [rsi + 0x48]
cmp edx, dword [rsi + 0x4c]
je 0x22db3f670
mov rax, qword [rsi + 0x40]
lea ecx, [rdx + 1]
mov dword [rsi + 0x48], ecx
mov word [rax + rdx*2], r13w
add r15d, 1
add r12, 0x10
cmp r15d, 6
jne 0x22db3f200
mov r13d, dword [rsp + 0x5c]
mov eax, dword [rsi + 4]
mov r12d, dword [rsi + 8]
mov r14d, dword [rsi]
cmp eax, r13d
jge 0x22db3ee01
nop dword [rax + rax]
mov r8d, eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x58], eax
cmp eax, r12d
jg 0x22db3f47e
add dword [rsp + 0x38], 1
test r8d, r8d
jns 0x22db3ed68
mov r15d, r14d
mov r9d, r12d
add dword [rsp + 0x28], 1
mov eax, dword [rsp + 0x28]
add dword [rsp + 0x48], 1
add dword [rsp + 0x6c], 1
cmp eax, r15d
jle 0x22db3ecd0
xor r8d, r8d
movaps xmm6, xmmword [rsp + 0x120]
mov eax, r8d
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm9, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15d, dword [rsi + 0xc]
lea rbp, [rsi + 0x10]
mov qword [rsp + 0x48], rbp
test r15d, r15d
je 0x22db3fa22
lea eax, [r15 - 1]
lea r10, [rsi + rax*4 + 0x14]
nop dword [rax + rax]
movzx ebx, byte [rbp + 1]
movzx esi, byte [rbp]
add rbp, 4
movzx edx, byte [rbp - 2]
movzx r12d, byte [rbp - 1]
not ebx
add ebx, dword [r14 + 8]
mov eax, esi
sar esi, 4
mov ecx, ebx
imul esi, dword [r14 + 0x24]
mov r9d, eax
sar ecx, 4
imul ecx, dword [r14 + 0x10]
and r9d, 0xf
add esi, ecx
movzx ecx, dl
and edx, 0xf
sar ecx, 4
add esi, ecx
movsxd rsi, esi
shl rsi, 4
add rsi, qword [r14 + 0x18]
mov r8, qword [rsi]
test r8, r8
je 0x22db3f57f
shl ebx, 4
mov eax, r9d
movzx ecx, bl
shl eax, 8
add eax, ecx
add eax, edx
cdqe
mov byte [r8 + rax], r12b
cmp rbp, r10
jne 0x22db3f500
mov rax, qword [rsp + 0x48]
lea rsi, [rax + r15*4]
jmp 0x22db3eb30
mov ecx, 0x1000
mov qword [rsp + 0x40], r10
shl ebx, 4
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x30], r9d
call sub.msvcrt.dll_malloc
mov ecx, 0x200
mov edx, dword [rsp + 0x58]
mov dword [rsi + 8], 0x1000
mov qword [rsi], rax
mov rdi, rax
mov rax, qword [rsp + 0x38]
add dword [r14 + 0x28], 1
mov r10, qword [rsp + 0x40]
rep stosq qword [rdi], rax
mov eax, dword [rsp + 0x30]
movzx ecx, bl
shl eax, 8
add eax, ecx
add eax, edx
mov rdx, qword [rsi]
cdqe
mov byte [rdx + rax], r12b
cmp rbp, r10
jne 0x22db3f500
mov rax, qword [rsp + 0x48]
lea rsi, [rax + r15*4]
jmp 0x22db3eb30
mov rax, qword [rsp + 0x50]
sub rax, rsi
sub rax, 0xd
cmp rax, 0xe
jbe 0x22db3f9d6
xor eax, eax
nop dword [rax]
movdqu xmm2, xmmword [rsi + rax + 0xc]
movups xmmword [r14 + rax + 0x64], xmm2
add rax, 0x10
cmp rax, 0x3f0
jne 0x22db3f610
mov rax, qword [rsi + 0x3fc]
add rsi, 0x408
mov qword [r14 + 0x454], rax
mov eax, dword [rsi - 4]
mov dword [r14 + 0x45c], eax
jmp 0x22db3eb30
test r11b, r11b
je 0x22db3ef97
test dl, dl
je 0x22db3edf8
jmp 0x22db3ef9a
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
jmp 0x22db3f423
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
jmp 0x22db3f408
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
jmp 0x22db3f3ea
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsp + 0x68], r9d
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov r9d, dword [rsp + 0x68]
mov qword [rsi + 0x40], rax
jmp 0x22db3f3ce
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
jmp 0x22db3f3ae
add edx, edx
mov rcx, qword [rsi + 0x40]
mov dword [rsi + 0x4c], edx
movsxd rdx, edx
add rdx, rdx
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x48]
mov qword [rsi + 0x40], rax
jmp 0x22db3f38f
add edx, edx
mov rcx, qword [rsi + 0x50]
mov dword [rsi + 0x5c], edx
movsxd rdx, edx
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x58]
mov qword [rsi + 0x50], rax
jmp 0x22db3f374
add edx, edx
mov rcx, qword [rsi + 0x50]
mov dword [rsi + 0x5c], edx
movsxd rdx, edx
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x58]
mov qword [rsi + 0x50], rax
jmp 0x22db3f359
add edx, edx
mov rcx, qword [rsi + 0x50]
mov dword [rsi + 0x5c], edx
movsxd rdx, edx
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x58]
mov qword [rsi + 0x50], rax
jmp 0x22db3f33e
add edx, edx
mov rcx, qword [rsi + 0x50]
mov dword [rsi + 0x5c], edx
movsxd rdx, edx
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x58]
mov qword [rsi + 0x50], rax
jmp 0x22db3f323
add edx, edx
mov rcx, qword [rsi + 0x30]
mov dword [rsi + 0x3c], edx
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd rdx, dword [rsi + 0x38]
mov qword [rsi + 0x30], rax
jmp 0x22db3f2f3
add eax, eax
mov rcx, qword [rsi + 0x30]
mov dword [rsi + 0x3c], eax
cdqe
lea rdx, [rax + rax*2]
shl rdx, 2
call sub.msvcrt.dll_realloc
mov qword [rsi + 0x30], rax
mov rdx, rax
movsxd rax, dword [rsi + 0x38]
jmp 0x22db3f2b7
add eax, eax
mov rcx, qword [rsi + 0x30]
mov dword [rsi + 0x3c], eax
cdqe
lea rdx, [rax + rax*2]
shl rdx, 2
call sub.msvcrt.dll_realloc
mov qword [rsi + 0x30], rax
mov rdx, rax
movsxd rax, dword [rsi + 0x38]
jmp 0x22db3f27b
lea eax, [rdi + rdi]
mov dword [rsp + 0x68], r10d
mov dword [rsi + 0x3c], eax
cdqe
lea rdx, [rax + rax*2]
shl rdx, 2
call sub.msvcrt.dll_realloc
movsxd r10, dword [rsp + 0x68]
mov qword [rsi + 0x30], rax
mov rcx, rax
movsxd rax, dword [rsi + 0x38]
jmp 0x22db3f242
mov r11d, r13d
sar r11d, 4
add r11d, edi
movsxd r11, r11d
shl r11, 4
mov rbx, qword [r9 + r11]
test rbx, rbx
je 0x22db3f9cf
mov r11d, r13d
and r11d, 0xf
add r11d, dword [rsp + 0x60]
movsxd r11, r11d
movzx ebx, byte [rbx + r11]
mov r11d, dword [rsp + 0x38]
xor edi, edi
test r11d, r11d
jns 0x22db3eeea
jmp 0x22db3ef27
imul r10d, dword [rsp + 0x9c]
add r10d, r11d
add r10d, ebp
movsxd r10, r10d
shl r10, 4
mov r10, qword [r9 + r10]
test r10, r10
je 0x22db3eebe
mov ecx, dword [rsp + 0x5c]
add ecx, dword [rsp + 0x80]
movsxd rcx, ecx
movzx ecx, byte [r10 + rcx]
jmp 0x22db3eebe
mov ecx, dword [rsp + 0x98]
imul ecx, r10d
add ecx, r11d
add ecx, ebp
movsxd rcx, ecx
shl rcx, 4
mov rcx, qword [r9 + rcx]
test rcx, rcx
je 0x22db3eeb1
add ebx, dword [rsp + 0x7c]
movsxd rdx, ebx
cmp byte [rcx + rdx], 0
sete dl
jmp 0x22db3eeb1
mov ebx, r11d
sar ebx, 4
add ebx, edi
movsxd rbx, ebx
shl rbx, 4
mov rbx, qword [r9 + rbx]
test rbx, rbx
je 0x22db3eed3
mov r10d, dword [rsp + 0x60]
and r11d, 0xf
add r10d, r11d
movsxd r10, r10d
movzx r10d, byte [rbx + r10]
jmp 0x22db3eed3
xor edi, edi
jmp 0x22db3ef27
xor ebx, ebx
jmp 0x22db3f8f2
mov r8, qword [rsp + 0x50]
add rsi, 0x408
nop word [rax + rax]
movzx r9d, byte [rbx]
movzx ecx, byte [rbx + 1]
xor eax, eax
add rbx, 4
movzx edx, byte [rbx - 2]
add r8, 4
mov al, r9b
mov ah, cl
movzx ecx, byte [rbx - 1]
shl edx, 0x10
movzx eax, ax
shl ecx, 0x18
or eax, edx
or eax, ecx
mov dword [r8 - 4], eax
cmp rsi, rbx
jne 0x22db3f9e8
jmp 0x22db3eb30
mov rsi, rbp
jmp 0x22db3eb30
mov r8d, 0xfffffffd
jmp 0x22db3f4a3