Function at 0x2e3c9f160
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 0x2e3c9fbb3
movabs rcx, 0xfebf7ffffffffffe
bt rcx, rdx
jb 0x2e3c9fbb3
cmp dword [rax + 4], 0x95
lea rsi, [rax + 8]
jbe 0x2e3ca013a
lea rax, [r14 + 0x64]
lea r13, [rsp + 0xc0]
mov qword [rsp + 0x50], rax
cmp rbx, rsi
ja 0x2e3c9f24b
jmp 0x2e3c9f36c
lea rdx, str.XYZI
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x2e3c9fbec
lea rdx, str.RGBA
mov rcx, r13
lea rbx, [rsi + 0xc]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x2e3c9fd05
mov eax, edi
lea rsi, [rbx + rax]
nop dword [rax + rax]
cmp rsi, qword [rsp + 0x28]
jae 0x2e3c9f36c
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 0x2e3c9f200
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 0x2e3c9f240
mov qword [rax], 0
mov dword [rax + 8], 0
cmp ebx, 1
je 0x2e3c9f240
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 0x2e3c9f340
cmp rsi, qword [rsp + 0x28]
jb 0x2e3c9f24b
mov ecx, 0x9000
call sub.msvcrt.dll_malloc
mov rbx, qword [0x2e3edab50]
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 0x2e3c9fbb0
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 0x2e3c9fb94
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 0x2e3c9fb8e
nop word [rax + rax]
mov edi, dword [rsp + 0x58]
mov ebx, dword [rsp + 0x8c]
xor r13d, r13d
movss xmm8, dword [0x2e3edab58]
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 0x2e3c9f511
cmp eax, r13d
jl 0x2e3c9fb70
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 0x2e3c9f508
cmp dword [rsp + 0x58], r12d
jge 0x2e3c9f508
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 0x2e3c9f508
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 0x2e3c9f508
cmp byte [rsp + 0x50], 0
mov edx, 1
jne 0x2e3c9f5c1
cmp dword [rsp + 0x6c], r14d
jl 0x2e3ca0060
xor ecx, ecx
cmp dword [rsp + 0x48], r14d
jl 0x2e3ca0020
mov r11d, r8d
xor r10d, r10d
sub r11d, 1
js 0x2e3c9f5e3
cmp eax, r11d
jg 0x2e3ca00a0
cmp eax, r13d
jg 0x2e3c9ffd0
mov edi, dword [rsp + 0x38]
xor ebx, ebx
test edi, edi
js 0x2e3ca00d8
xor edi, edi
cmp dword [rsp + 0x38], r12d
jge 0x2e3c9f637
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 0x2e3c9f637
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 0x2e3c9f674
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 0x2e3c9f674
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 0x2e3c9fd60
or edx, 0x10
test r11b, r11b
jne 0x2e3c9f6aa
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, [0x2e3edaa60]
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 [0x2e3edab58]
movq xmm5, qword [0x2e3edab58]
movaps xmm6, xmm4
unpcklps xmm6, xmm3
jmp 0x2e3c9f740
add eax, 1
add rdx, 0x10
cmp eax, 6
je 0x2e3c9f8f8
bt ebp, eax
jae 0x2e3c9f730
movsxd rcx, dword [rdx]
mov r10d, dword [rsp + rcx*4 + 0xa0]
test r10d, r10d
jne 0x2e3c9f796
mov dword [rsp + rcx*4 + 0xa0], 1
lea rdi, [0x2e3edaa00]
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 0x2e3c9f7e8
mov dword [rsp + rcx*4 + 0xa0], 1
lea rdi, [0x2e3edaa00]
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 0x2e3c9f863
mov dword [rsp + rcx*4 + 0xa0], 1
lea rcx, [rcx + rcx*2]
lea rdi, [0x2e3edaa00]
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 0x2e3c9f730
lea rdi, [0x2e3edaa00]
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 0x2e3c9f740
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 0x2e3c9fb3e
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 0x2e3c9ffa0
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 0x2e3c9ff70
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 0x2e3c9ff40
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 0x2e3c9ff18
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 0x2e3c9fef0
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 0x2e3c9fec8
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 0x2e3c9fea0
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 0x2e3c9fe78
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 0x2e3c9fe50
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 0x2e3c9fe28
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 0x2e3c9fdf8
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 0x2e3c9fdd0
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 0x2e3c9fda8
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 0x2e3c9fd80
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 0x2e3c9f910
mov r13d, dword [rsp + 0x5c]
mov eax, dword [rsi + 4]
mov r12d, dword [rsi + 8]
mov r14d, dword [rsi]
cmp eax, r13d
jge 0x2e3c9f511
nop dword [rax + rax]
mov r8d, eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x58], eax
cmp eax, r12d
jg 0x2e3c9fb8e
add dword [rsp + 0x38], 1
test r8d, r8d
jns 0x2e3c9f478
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 0x2e3c9f3e0
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 0x2e3ca0132
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 0x2e3c9fc8f
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 0x2e3c9fc10
mov rax, qword [rsp + 0x48]
lea rsi, [rax + r15*4]
jmp 0x2e3c9f240
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 0x2e3c9fc10
mov rax, qword [rsp + 0x48]
lea rsi, [rax + r15*4]
jmp 0x2e3c9f240
mov rax, qword [rsp + 0x50]
sub rax, rsi
sub rax, 0xd
cmp rax, 0xe
jbe 0x2e3ca00e6
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 0x2e3c9fd20
mov rax, qword [rsi + 0x3fc]
add rsi, 0x408
mov qword [r14 + 0x454], rax
mov eax, dword [rsi - 4]
mov dword [r14 + 0x45c], eax
jmp 0x2e3c9f240
test r11b, r11b
je 0x2e3c9f6a7
test dl, dl
je 0x2e3c9f508
jmp 0x2e3c9f6aa
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 0x2e3c9fb33
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 0x2e3c9fb18
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 0x2e3c9fafa
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 0x2e3c9fade
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 0x2e3c9fabe
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 0x2e3c9fa9f
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 0x2e3c9fa84
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 0x2e3c9fa69
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 0x2e3c9fa4e
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 0x2e3c9fa33
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 0x2e3c9fa03
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 0x2e3c9f9c7
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 0x2e3c9f98b
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 0x2e3c9f952
mov r11d, r13d
sar r11d, 4
add r11d, edi
movsxd r11, r11d
shl r11, 4
mov rbx, qword [r9 + r11]
test rbx, rbx
je 0x2e3ca00df
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 0x2e3c9f5fa
jmp 0x2e3c9f637
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 0x2e3c9f5ce
mov ecx, dword [rsp + 0x5c]
add ecx, dword [rsp + 0x80]
movsxd rcx, ecx
movzx ecx, byte [r10 + rcx]
jmp 0x2e3c9f5ce
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 0x2e3c9f5c1
add ebx, dword [rsp + 0x7c]
movsxd rdx, ebx
cmp byte [rcx + rdx], 0
sete dl
jmp 0x2e3c9f5c1
mov ebx, r11d
sar ebx, 4
add ebx, edi
movsxd rbx, ebx
shl rbx, 4
mov rbx, qword [r9 + rbx]
test rbx, rbx
je 0x2e3c9f5e3
mov r10d, dword [rsp + 0x60]
and r11d, 0xf
add r10d, r11d
movsxd r10, r10d
movzx r10d, byte [rbx + r10]
jmp 0x2e3c9f5e3
xor edi, edi
jmp 0x2e3c9f637
xor ebx, ebx
jmp 0x2e3ca0002
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 0x2e3ca00f8
jmp 0x2e3c9f240
mov rsi, rbp
jmp 0x2e3c9f240
mov r8d, 0xfffffffd
jmp 0x2e3c9fbb3