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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov dword [esp + 0x8c], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x90], ecx
inc ecx
je 0x100543e7
mov edi, edx
mov edx, dword [edx]
mov dword [esp + 0x28], edi
lea ebx, [edx + 1]
mov esi, ebx
shr esi, 3
lea eax, [esi*8]
sub eax, esi
cmp edx, 8
mov esi, dword [ebp + 8]
cmovb eax, edx
mov edx, eax
shr edx, 1
cmp ecx, edx
jbe 0x1005384c
inc eax
cmp ecx, eax
cmova eax, ecx
test eax, eax
je 0x10053e21
cmp eax, 8
jae 0x10053e55
xor ecx, ecx
cmp eax, 3
seta cl
lea eax, [ecx*4 + 4]
jmp 0x10053e90
movdqa xmm0, xmmword [0x10364f40]
xor eax, eax
xor edx, edx
jmp 0x10053879
mov edx, dword [edi + 4]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [edx + eax]
por xmm1, xmm0
movdqa xmmword [edx + eax], xmm1
mov dl, 1
mov eax, ecx
test dl, 1
je 0x100538a0
lea ecx, [eax + 0xf]
mov edx, eax
inc ecx
add edx, 0xf
cmovb ecx, ebx
cmp edx, ebx
cmovae ecx, ebx
add eax, 0xf
jb 0x100538a9
cmp eax, ebx
jb 0x10053860
jmp 0x100538a9
cmp eax, ebx
jae 0x100538a9
lea ecx, [eax + 1]
jmp 0x10053860
mov ecx, dword [edi]
mov eax, dword [edi + 4]
inc ecx
cmp ecx, 0x10
jae 0x100538c4
push ecx
push eax
add eax, 0x10
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
jmp 0x100538d8
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [eax + ecx + 8], xmm1
movq qword [eax + ecx], xmm0
mov ecx, dword [edi]
cmp ecx, 0xffffffff
je 0x10053e3b
mov eax, dword [esi]
xor esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], eax
jmp 0x10053d7a
mov esi, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov edi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x58], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x5c], edi
mov edi, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
mov ecx, esi
xor edx, 0x79746573
xor esi, 0x74656462
xor edi, 0x6e646f6d
xor ecx, 0x646f7261
mov dword [esp + 0x68], edi
imul edi, dword [esp + 0x44], 0x34
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], esi
lea esi, [esp + 0x48]
mov dword [ecx + 8], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov ecx, esi
lea edx, [ebx + edi - 0x34]
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + edi - 0x34]
push dword [ebx + edi - 0x2c]
call fcn.10018260
add esp, 4
mov ecx, esi
mov byte [esp + 0x17], 0xff
lea edx, [esp + 0x17]
push 1
call fcn.10018260
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x5c]
shl edx, 0x18
mov dword [esp + 8], eax
xor edi, esi
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x6c]
or edx, dword [esp + 0x7c]
mov dword [esp + 0xc], edx
xor ecx, edx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 8]
adc ebx, esi
mov dword [esp + 4], ebx
shld eax, esi, 0xd
shld esi, edx, 0xd
mov edx, dword [esp + 0x10]
xor esi, ebx
mov ebx, dword [esp + 0x64]
xor eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x60]
add eax, edi
mov dword [esp + 8], eax
mov eax, edi
adc ebx, ecx
shrd edi, ecx, 0x10
shld eax, ecx, 0x10
xor edi, ebx
xor eax, dword [esp + 8]
add dword [esp + 4], eax
mov ecx, eax
adc edx, edi
shrd eax, edi, 0xb
shld ecx, edi, 0x15
xor eax, edx
xor ecx, dword [esp + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
add dword [esp + 8], eax
mov edi, eax
adc ebx, esi
shld edi, esi, 0x11
shrd eax, esi, 0xf
mov esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
xor eax, ebx
xor esi, dword [esp + 0xc]
xor ebx, 0xff
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
xor dword [esp + 4], edx
mov edx, ecx
xor edi, dword [esp + 8]
add dword [esp + 4], edi
mov ebx, edi
adc esi, eax
shrd edi, eax, 0x13
shld ebx, eax, 0xd
mov eax, dword [esp + 0x30]
xor edi, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 8]
xor ebx, dword [esp + 4]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
add edi, ecx
adc esi, eax
shld edx, eax, 0x10
shrd ecx, eax, 0x10
mov dword [esp + 0xc], edi
xor edx, edi
mov edi, dword [esp + 0x10]
xor ecx, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov eax, edx
add edi, edx
adc esi, ecx
shld eax, ecx, 0x15
shrd edx, ecx, 0xb
mov ecx, edi
mov dword [esp + 0x10], edi
mov ecx, ebx
xor eax, edi
xor edx, esi
mov dword [esp + 4], esi
add dword [esp + 0xc], ebx
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x18]
adc esi, edi
shrd ebx, edi, 0xf
shld ecx, edi, 0x11
mov dword [esp + 8], esi
xor ebx, esi
mov esi, dword [esp + 0xc]
xor ecx, esi
add dword [esp + 0x10], ecx
mov edi, ecx
adc dword [esp + 4], ebx
shrd ecx, ebx, 0x13
shld edi, ebx, 0xd
mov ebx, dword [esp + 0x10]
xor ecx, dword [esp + 4]
xor edi, ebx
add dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov esi, eax
shrd eax, edx, 0x10
shld esi, edx, 0x10
xor eax, dword [esp + 0xc]
xor esi, dword [esp + 8]
add dword [esp + 4], esi
mov edx, esi
adc ebx, eax
shld edx, eax, 0x15
shrd esi, eax, 0xb
mov eax, dword [esp + 0xc]
xor esi, ebx
xor edx, dword [esp + 4]
add dword [esp + 8], edi
mov dword [esp + 0x10], ebx
mov ebx, edi
adc eax, ecx
shld ebx, ecx, 0x11
shrd edi, ecx, 0xf
mov ecx, dword [esp + 4]
xor ebx, dword [esp + 8]
xor edi, eax
mov dword [esp + 0xc], eax
add ecx, ebx
mov eax, ebx
adc dword [esp + 0x10], edi
shld eax, edi, 0xd
shrd ebx, edi, 0x13
mov edi, dword [esp + 8]
xor eax, ecx
xor ebx, dword [esp + 0x10]
add dword [esp + 0xc], edx
mov ecx, edx
adc edi, esi
shrd edx, esi, 0x10
shld ecx, esi, 0x10
mov esi, dword [esp + 0xc]
xor edx, edi
xor ecx, esi
shld ecx, edx, 0x15
add esi, eax
adc edi, ebx
shrd ebx, eax, 0xf
mov eax, dword [esp + 0x28]
xor ebx, ecx
xor ebx, edi
xor ebx, esi
xor esi, esi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edi, ebx
mov dword [esp + 4], ebx
mov edx, edi
and edx, ecx
movdqu xmm0, xmmword [eax + edx]
lea edi, [esi + edx + 0x10]
add esi, 0x10
pmovmskb ebx, xmm0
test bx, bx
je 0x10053c00
bsf si, bx
movzx esi, si
add edx, esi
and edx, ecx
cmp byte [eax + edx], 0
jns 0x10053d30
mov esi, ecx
mov edi, dword [esp + 0x2c]
and esi, dword [esp + 4]
mov ebx, edi
sub ebx, esi
mov dword [esp + 8], ebx
mov ebx, edx
sub ebx, esi
xor ebx, dword [esp + 8]
and ebx, ecx
cmp ebx, 0x10
jb 0x10053d50
lea esi, [edx - 0x10]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x28]
and esi, ecx
mov cl, byte [eax + edx]
shr ebx, 0x19
cmp cl, 0xff
mov byte [eax + edx], bl
mov byte [esi + eax + 0x10], bl
je 0x10053d92
neg edx
mov eax, dword [edi + 4]
mov ebx, edi
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
imul ecx, edx, 0x34
mov edx, dword [esp + 0x1c]
movups xmm0, xmmword [eax + ecx - 0x34]
movups xmm1, xmmword [eax + ecx - 0x24]
movsd xmm2, qword [edx + 0x18]
movsd qword [eax + ecx - 0x1c], xmm2
movsd xmm2, qword [edx + 0x10]
movsd qword [eax + ecx - 0x24], xmm2
movsd xmm2, qword [edx]
movsd xmm3, qword [edx + 8]
movsd qword [eax + ecx - 0x2c], xmm3
movsd qword [eax + ecx - 0x34], xmm2
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm1
mov edx, dword [eax + ecx - 4]
mov dword [esp + 0x58], edx
movsd xmm0, qword [eax + ecx - 0x14]
movsd xmm1, qword [eax + ecx - 0xc]
movsd qword [esp + 0x50], xmm1
movsd qword [esp + 0x48], xmm0
mov edx, dword [esi + edi - 4]
mov dword [eax + ecx - 4], edx
movsd xmm0, qword [esi + edi - 0x14]
movsd xmm1, qword [esi + edi - 0xc]
movsd qword [eax + ecx - 0xc], xmm1
movsd qword [eax + ecx - 0x14], xmm0
mov eax, dword [esp + 0x58]
mov dword [esi + edi - 4], eax
movq xmm0, qword [esp + 0x48]
movq xmm1, qword [esp + 0x50]
movq qword [esi + edi - 0xc], xmm1
movq qword [esi + edi - 0x14], xmm0
mov ebx, dword [ebx + 4]
jmp 0x10053900
movdqa xmm0, xmmword [eax]
pmovmskb edx, xmm0
bsf dx, dx
movzx edx, dx
jmp 0x10053c2e
mov ebx, dword [esp + 4]
lea edx, [edi - 0x10]
mov esi, edi
and ecx, edx
mov edx, dword [esp + 0x28]
shr ebx, 0x19
mov byte [eax + edi], bl
mov byte [ecx + eax + 0x10], bl
mov ecx, dword [esp + 0x20]
mov edi, edx
cmp esi, ecx
lea esi, [esi + 1]
je 0x10053e08
mov ebx, dword [edi + 4]
cmp byte [ebx + esi], 0x80
jne 0x10053d6f
mov dword [esp + 0x2c], esi
neg esi
mov dword [esp + 0x44], esi
jmp 0x10053900
mov esi, dword [esp + 0x2c]
mov ecx, dword [edi + 4]
mov ebx, edi
neg edx
lea eax, [esi - 0x10]
and eax, dword [edi]
mov byte [ecx + esi], 0xff
mov byte [eax + ecx + 0x10], 0xff
imul ecx, edx, 0x34
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x1c]
mov edx, dword [edi + 0x30]
mov dword [eax + ecx - 4], edx
movsd xmm0, qword [edi + 0x28]
movsd qword [eax + ecx - 0xc], xmm0
movsd xmm0, qword [edi + 0x20]
movsd qword [eax + ecx - 0x14], xmm0
movsd xmm0, qword [edi + 0x18]
movsd qword [eax + ecx - 0x1c], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + ecx - 0x24], xmm0
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
mov edi, ebx
movq qword [eax + ecx - 0x2c], xmm1
movq qword [eax + ecx - 0x34], xmm0
mov ecx, dword [esp + 0x20]
jmp 0x10053d6f
mov ecx, dword [edi]
lea edx, [ecx + 1]
shr edx, 3
lea eax, [edx*8]
sub eax, edx
cmp ecx, 8
cmovb eax, ecx
jmp 0x10053e3d
xor esi, esi
mov dword [esp + 0x1c], 0x1037f350
mov dword [esp + 0x88], 0
jmp 0x10053f35
xor eax, eax
sub eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x8c]
mov dword [edi + 8], eax
mov dword [ecx], 0
jmp 0x100543df
mov ecx, 8
mul ecx
jo 0x100543e7
mov esi, eax
mov ecx, 0x24924925
mul ecx
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
mov edx, 0xffffffff
shr eax, 2
dec eax
bsr ecx, eax
mov eax, 1
xor ecx, 0x1f
shr edx, cl
inc edx
cmp esi, 0xd
cmova eax, edx
mov ecx, 0x34
mov dword [esp + 4], eax
mov dword [esp + 0x20], ebx
mul ecx
jo 0x100543e7
lea edi, [eax + 0xf]
and edi, 0xfffffff0
sub edi, eax
add edi, eax
jb 0x100543e7
mov eax, dword [esp + 4]
lea esi, [eax + 0x10]
mov eax, edi
add eax, esi
jb 0x100543e7
cmp eax, 0xfffffff1
jae 0x100543e7
mov dword [esp + 8], eax
lea ebx, [eax + 0x10]
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10054400
mov ecx, eax
and ecx, 0xfffffff0
mov dword [ecx + 0xc], eax
lea eax, [ecx + edi + 0x10]
mov edi, dword [esp + 4]
lea ecx, [edi - 1]
shr edi, 3
lea edx, [edi*8]
sub edx, edi
cmp ecx, 8
cmovb edx, ecx
mov dword [esp + 0x88], edx
push esi
mov esi, ecx
push 0xff
mov dword [esp + 0x24], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov ecx, dword [edi + 4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x3c], esi
movdqa xmm0, xmmword [ecx]
mov edi, dword [edi]
add ebx, ecx
lea edx, [ecx + 0x10]
mov dword [esp + 0x20], ebx
pmovmskb eax, xmm0
mov dword [esp + 0x38], edi
not eax
test ax, ax
je 0x10053f70
nop dword [eax]
mov dword [esp + 0x34], edx
lea edx, [eax - 1]
mov dword [esp + 0x24], ecx
and edx, eax
jmp 0x10053fb4
mov edi, dword [esp + 0x28]
nop word cs:[eax + eax]
nop
cmp edx, ebx
jae 0x10054388
movdqa xmm0, xmmword [edx]
add ecx, 0xfffffcc0
add edx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x10053f80
mov esi, 0xfffffffe
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], ecx
sub esi, eax
not eax
mov edx, eax
and edx, esi
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x38]
bsf ax, ax
movzx eax, ax
neg eax
imul eax, eax, 0x34
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edi, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ebx
xor ecx, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x58], edi
mov edi, edx
xor edx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], ecx
mov ecx, esi
mov dword [esp + 0x64], edx
xor esi, 0x79746573
lea edi, [esp + 0x48]
xor ecx, 0x6e646f6d
mov dword [esp + 0x68], ecx
mov ecx, ebx
xor ebx, 0x74656462
xor ecx, 0x646f7261
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x74], ebx
lea ecx, [esi + eax - 0x34]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x78]
mov dword [ecx + 8], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov ecx, edi
mov edx, dword [esi + eax - 0x34]
push dword [esi + eax - 0x2c]
call fcn.10018260
add esp, 4
mov ecx, edi
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0xff
push 1
call fcn.10018260
add esp, 4
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x5c]
shl eax, 0x18
mov dword [esp + 0x44], ecx
or eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
xor esi, eax
mov eax, dword [esp + 0x70]
xor eax, ecx
mov ecx, dword [esp + 0x58]
add ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, edx
mov edx, dword [esp + 0x6c]
mov edi, ecx
adc ebx, edx
shld edi, edx, 0xd
shld edx, ecx, 0xd
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], ebx
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edi, ecx
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x60]
add edi, eax
mov dword [esp + 8], edi
mov edi, eax
adc ebx, esi
shrd eax, esi, 0x10
shld edi, esi, 0x10
xor eax, ebx
xor edi, dword [esp + 8]
add dword [esp + 4], edi
mov esi, edi
adc ecx, eax
shrd edi, eax, 0xb
shld esi, eax, 0x15
mov dword [esp + 0xc], ecx
xor edi, ecx
mov ecx, dword [esp + 0x40]
xor esi, dword [esp + 4]
add dword [esp + 8], ecx
mov eax, ecx
adc ebx, edx
shld eax, edx, 0x11
shrd ecx, edx, 0xf
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov eax, ecx
mov ecx, dword [esp + 0x44]
xor edx, dword [esp + 0x10]
xor dword [esp + 4], ecx
mov ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, ebx
xor ebx, 0xff
mov dword [esp + 0x10], ebx
xor eax, dword [esp + 8]
add dword [esp + 4], eax
mov ebx, eax
adc edx, ecx
shrd eax, ecx, 0x13
shld ebx, ecx, 0xd
mov ecx, esi
xor eax, edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
xor ebx, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, esi
adc edx, edi
shld ecx, edi, 0x10
shrd esi, edi, 0x10
mov dword [esp + 0x10], eax
xor ecx, eax
mov eax, dword [esp + 0xc]
xor esi, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 4]
mov edi, ecx
add eax, ecx
adc edx, esi
shld edi, esi, 0x15
shrd ecx, esi, 0xb
mov dword [esp + 0xc], eax
mov esi, ebx
xor edi, eax
xor ecx, edx
mov dword [esp + 4], edx
add dword [esp + 0x10], ebx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x18]
adc edx, eax
shrd ebx, eax, 0xf
shld esi, eax, 0x11
mov eax, dword [esp + 0xc]
mov dword [esp + 8], edx
xor ebx, edx
mov edx, dword [esp + 0x10]
xor esi, edx
add eax, esi
mov dword [esp + 0x18], esi
adc dword [esp + 4], ebx
shrd esi, ebx, 0x13
shld dword [esp + 0x18], ebx, 0xd
mov ebx, dword [esp + 8]
xor dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
mov eax, edi
xor esi, dword [esp + 4]
add ebx, edi
adc edx, ecx
shrd edi, ecx, 0x10
shld eax, ecx, 0x10
mov dword [esp + 0x10], edx
xor edi, edx
mov edx, dword [esp + 4]
xor eax, ebx
mov ecx, eax
add edx, eax
adc dword [esp + 0xc], edi
shld ecx, edi, 0x15
shrd eax, edi, 0xb
mov edi, dword [esp + 0x18]
mov dword [esp + 4], edx
xor ecx, edx
xor eax, dword [esp + 0xc]
add ebx, edi
mov edx, edi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
adc ebx, esi
shld edx, esi, 0x11
shrd edi, esi, 0xf
xor edx, dword [esp + 8]
mov esi, edi
mov edi, ebx
xor esi, ebx
mov ebx, esi
add dword [esp + 4], edx
adc dword [esp + 0xc], esi
mov esi, edx
shrd edx, ebx, 0x13
shld esi, ebx, 0xd
xor edx, dword [esp + 0xc]
mov ebx, ecx
xor esi, dword [esp + 4]
add edi, ecx
adc dword [esp + 8], eax
shld ebx, eax, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 8]
xor ebx, edi
xor ecx, eax
shld ebx, ecx, 0x15
add edi, esi
adc eax, edx
shrd edx, esi, 0xf
xor ecx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x3c]
xor edx, eax
xor edx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 4], edx
nop
mov eax, edx
and eax, ebx
movdqu xmm0, xmmword [edi + eax]
lea edx, [ecx + eax + 0x10]
add ecx, 0x10
pmovmskb esi, xmm0
test si, si
je 0x100542c0
bsf cx, si
mov edx, edi
mov esi, ebx
movzx ecx, cx
add eax, ecx
and eax, ebx
cmp byte [edi + eax], 0
jns 0x10054374
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x2c]
lea ecx, [eax - 0x10]
and ecx, esi
shr ebx, 0x19
mov byte [edx + eax], bl
mov byte [ecx + edx + 0x10], bl
neg eax
mov ebx, dword [esp + 0x20]
mov ecx, dword [edi + 0x30]
imul eax, eax, 0x34
mov dword [edx + eax - 4], ecx
mov ecx, dword [esp + 0x24]
movsd xmm0, qword [edi + 0x28]
movsd qword [edx + eax - 0xc], xmm0
movsd xmm0, qword [edi + 0x20]
movsd qword [edx + eax - 0x14], xmm0
movsd xmm0, qword [edi + 0x18]
movsd qword [edx + eax - 0x1c], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [edx + eax - 0x24], xmm0
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
movq qword [edx + eax - 0x2c], xmm1
movq qword [edx + eax - 0x34], xmm0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test ax, ax
jne 0x10053f60
jmp 0x10053f70
movdqa xmm0, xmmword [edx]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
jmp 0x100542f2
mov edx, dword [esp + 0x1c]
mov ecx, esi
mov eax, dword [edi]
mov esi, dword [edi + 4]
mov ebx, dword [esp + 0x90]
mov dword [edi], ecx
mov dword [edi + 4], edx
mov edx, dword [esp + 0x88]
sub edx, ebx
test eax, eax
mov dword [edi + 8], edx
mov edx, dword [esp + 0x8c]
mov dword [edi + 0xc], ebx
mov dword [edx], 0
je 0x100543df
inc eax
mov ecx, 0x34
mul ecx
add eax, 0xf
and eax, 0xfffffff0
sub esi, eax
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x1037f2b7
mov edx, 0x1c
push 0x1037f244
call fcn.10008540
add esp, 4
ud2
mov ecx, dword [esp + 8]
mov edx, 0x10
call fcn.100067d0
ud2