Function at 0x715de0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov ebx, dword [ecx + 0xc]
mov dword [esp + 4], edx
mov eax, ebx
inc eax
je 0x716998
mov edi, dword [ecx + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ebx
lea esi, [edi + 1]
mov dword [esp + 8], edi
mov edx, esi
mov ebp, esi
and esi, 0xfffffff8
shr edx, 3
sub esi, edx
cmp edi, 8
cmovb esi, edi
mov edx, esi
shr edx, 1
cmp eax, edx
jbe 0x715e4a
inc esi
mov dword [esp + 0x20], ebp
cmp eax, esi
cmova esi, eax
cmp esi, 8
jae 0x715eb7
xor eax, eax
cmp esi, 4
setae al
lea edi, [eax*4 + 4]
jmp 0x715ef0
mov ebx, ebp
mov edi, dword [ecx]
mov ecx, ebp
xor eax, eax
mov edx, ebp
shr ebx, 4
test cl, 0xf
setne al
add eax, ebx
je 0x715e86
movdqa xmm0, xmmword [0x725600]
mov ecx, edi
nop dword [eax + eax]
pxor xmm1, xmm1
dec eax
pcmpgtb xmm1, xmmword [ecx]
por xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
jne 0x715e70
cmp edx, 0x10
jae 0x715f76
lea eax, [edi + 0x10]
push edx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp dword [esp + 8], 0xffffffff
jne 0x715f8a
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
xor eax, eax
jmp 0x7167c9
cmp esi, 0x20000000
jae 0x716998
shl esi, 3
mov edi, 1
cmp esi, 0xe
jb 0x715ef0
mov edx, 0x24924925
mov eax, esi
mov edi, 0xffffffff
mul edx
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 2
dec esi
bsr ecx, esi
not ecx
shr edi, cl
inc edi
mov ecx, 0x18
mov eax, edi
mul ecx
jo 0x716998
mov esi, eax
lea ecx, [edi + 0x10]
add esi, 0xf
and esi, 0xfffffff0
mov ebx, esi
add ebx, ecx
jb 0x716998
cmp ebx, 0x7ffffff1
jae 0x716998
test ebx, ebx
je 0x7167d3
mov dword [esp], ecx
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x715f4e
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x71699f
mov dword [0x919820], eax
lea ecx, [ebx + 0x10]
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x71699f
mov ecx, dword [esp]
mov ebp, eax
and ebp, 0xfffffff0
mov dword [ebp + 0xc], eax
add ebp, 0x10
jmp 0x7167d8
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
movq qword [edi + edx + 8], xmm1
movq qword [edi + edx], xmm0
mov eax, dword [esp + 4]
mov dword [esp + 0x48], edi
mov ebx, dword [eax + 8]
mov esi, dword [eax]
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov eax, ebx
mov edx, ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ecx
xor ebp, 0x6c796765
xor esi, 0x70736575
xor ecx, 0x646f7261
xor ebx, 0x79746573
xor dword [esp + 0x40], 0x6e657261
xor dword [esp + 0x3c], 0x74656462
xor eax, 0x6e646f6d
xor edx, 0x736f6d65
mov dword [esp + 0x68], ebp
mov ebp, ecx
mov dword [esp + 0x64], ebx
add esi, eax
adc edx, ecx
shld ebp, eax, 0xd
shld eax, ecx, 0xd
mov dword [esp + 0x5c], esi
xor ebp, edx
xor eax, esi
mov dword [esp + 0x60], edx
xor edx, edx
mov ecx, ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebp
shld ecx, eax, 0x11
shld eax, ebp, 0x11
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
jmp 0x716046
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
shr eax, 0x19
lea ecx, [edx - 0x10]
mov byte [edi + edx], al
and ecx, dword [esp + 8]
mov byte [ecx + edi + 0x10], al
cmp edx, dword [esp + 8]
lea edx, [edx + 1]
je 0x7167ac
cmp byte [edi + edx], 0x80
jne 0x716039
lea eax, [edx*8]
mov ecx, edi
mov dword [esp + 0x44], edx
neg edx
lea eax, [eax + eax*2]
mov dword [esp + 0x78], edx
sub ecx, eax
mov eax, edi
add ecx, 0xffffffe8
mov dword [esp + 0x6c], ecx
nop dword [eax]
mov ecx, dword [esp + 0x78]
mov edx, 4
lea ecx, [ecx + ecx*2]
mov ebx, dword [eax + ecx*8 - 0x18]
mov eax, dword [eax + ecx*8 - 0x10]
cmp eax, 4
mov dword [esp + 0xc], eax
cmovb edx, eax
xor esi, esi
mov eax, 0
cmp edx, 3
ja 0x716120
mov ecx, eax
or ecx, 1
cmp ecx, edx
jb 0x716134
cmp eax, edx
jae 0x7160c6
movzx edx, byte [ebx + eax]
shl eax, 3
mov ecx, eax
shl edx, cl
test al, 0x20
mov ecx, 0
cmovne edx, ecx
or esi, edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], esi
lea eax, [ecx + 4]
cmp ecx, 4
jae 0x716170
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3c]
jmp 0x716449
mov esi, dword [ebx]
mov eax, 4
mov ecx, eax
or ecx, 1
cmp ecx, edx
jae 0x7160ab
mov ebp, esi
movzx esi, word [ebx + eax]
lea ecx, [eax*8]
mov edi, 0
shl esi, cl
test cl, 0x20
cmovne esi, edi
or eax, 2
or ebp, esi
mov esi, ebp
cmp eax, edx
jb 0x7160af
jmp 0x7160c6
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], ebx
xor ecx, dword [esp + 0xc]
xor eax, esi
add ebp, ecx
mov esi, ecx
adc edx, eax
shld esi, eax, 0x10
shrd ecx, eax, 0x10
xor esi, ebp
xor ecx, edx
mov eax, edx
mov edi, esi
mov ebx, ecx
mov edx, esi
add edi, dword [esp + 0x60]
adc ebx, dword [esp + 0x5c]
shld edx, ecx, 0x15
shrd esi, ecx, 0xb
mov ecx, dword [esp + 0xc]
xor edx, edi
mov dword [esp + 0x34], edx
xor esi, ebx
add ebp, dword [esp + 0x58]
mov dword [esp + 0x30], esi
adc eax, dword [esp + 0x54]
xor ebx, dword [esp + 0x18]
mov dword [esp + 0x28], ebp
xor ebp, dword [esp + 0x4c]
xor edi, ecx
add ecx, 0xfffffffc
mov dword [esp + 0x14], edi
mov dword [esp + 4], ebx
mov ebx, eax
mov dword [esp + 0x10], ebp
mov ebp, ecx
mov dword [esp + 0x1c], eax
xor ebx, dword [esp + 0x50]
and ebp, 7
and ecx, 0xfffffff8
mov dword [esp + 0xc], ecx
mov dword [esp], ebx
je 0x71636c
mov edx, dword [esp + 0xc]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov edi, 4
lea ecx, [edx - 5]
mov edx, dword [esp + 4]
and ecx, 0xfffffff8
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x30]
nop word [eax + eax]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], edi
mov esi, dword [esi + edi + 4]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x20]
xor ecx, dword [esp + 0x18]
mov esi, dword [esi + edi]
mov edi, dword [esp + 0x10]
xor ebx, esi
add ebp, dword [esp + 0x10]
mov dword [esp + 0x34], esi
mov esi, dword [esp]
adc edx, dword [esp]
shld edi, esi, 0xd
mov esi, dword [esp + 0x10]
xor edi, ebp
mov dword [esp + 0x10], edi
shld dword [esp], esi, 0xd
xor dword [esp], edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x28]
add eax, ebx
mov edi, eax
mov dword [esp + 0x1c], eax
mov eax, ebx
mov esi, dword [esp]
adc edx, ecx
shld eax, ecx, 0x10
shrd ebx, ecx, 0x10
mov ecx, dword [esp + 4]
xor eax, edi
xor ebx, edx
mov dword [esp + 0x30], edx
mov edi, eax
add ecx, eax
adc ebp, ebx
shld edi, ebx, 0x15
shrd eax, ebx, 0xb
mov edx, ecx
mov dword [esp + 4], ecx
mov ebx, edi
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
xor ebx, edx
mov edx, dword [esp + 0x10]
xor ecx, ebp
mov ebp, dword [esp + 4]
add eax, edx
mov edi, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
adc eax, dword [esp]
shld edi, esi, 0x11
shld dword [esp], edx, 0x11
mov edx, dword [esp + 0x14]
xor ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor edx, dword [esp + 0x18]
xor dword [esp], eax
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x24]
add edi, 8
cmp edi, dword [esp + 0xc]
jb 0x716240
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], ebx
add ecx, 0xc
mov ebx, dword [esp + 0x20]
cmp ebp, 3
jbe 0x71637a
mov eax, dword [ebx + ecx]
mov dword [esp + 0x18], 0
mov edx, 4
mov dword [esp + 0xc], eax
mov eax, edx
or eax, 1
cmp eax, ebp
jb 0x716395
mov edi, ecx
cmp edx, ebp
jb 0x7163c9
jmp 0x7163f1
mov ecx, 4
mov ebx, dword [esp + 0x20]
cmp ebp, 3
ja 0x716344
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 0
mov eax, edx
or eax, 1
cmp eax, ebp
jae 0x716361
lea eax, [edx + ecx]
mov edi, ecx
lea ecx, [edx*8]
movzx esi, word [ebx + eax]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
or edx, 2
or dword [esp + 0x18], eax
or dword [esp + 0xc], esi
cmp edx, ebp
jae 0x7163f1
add edi, edx
shl edx, 3
xor eax, eax
movzx esi, byte [ebx + edi]
mov ecx, edx
shld eax, esi, cl
shl esi, cl
test dl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
or dword [esp + 0x18], eax
or dword [esp + 0xc], esi
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
add ebx, ecx
mov esi, ecx
adc edx, edi
shld esi, edi, 0xd
shld edi, ecx, 0xd
mov dword [esp + 0x14], ebx
xor edi, edx
xor esi, ebx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x34]
mov ecx, edi
mov dword [esp + 0x24], esi
mov dword [esp], edi
shld ecx, esi, 0x11
mov dword [esp + 0x10], ecx
mov ecx, esi
mov esi, dword [esp + 0x28]
shld ecx, edi, 0x11
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x30]
shl eax, 0x18
xor edx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
movd xmm4, dword [esp + 0x20]
movd xmm5, dword [esp + 0x10]
or eax, dword [esp + 0x18]
mov edi, edx
punpckldq xmm4, xmm5
xor ecx, eax
add ebp, edx
mov dword [esp + 0x38], eax
adc esi, ecx
shld edi, ecx, 0x10
shrd edx, ecx, 0x10
xor edi, ebp
xor edx, esi
add ebx, edi
mov eax, edi
adc dword [esp + 0x14], edx
shld eax, edx, 0x15
shrd edi, edx, 0xb
add ebp, dword [esp + 0x24]
movd xmm0, ebx
movd xmm3, eax
mov eax, dword [esp + 0x14]
movd xmm1, edi
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm4
adc esi, dword [esp]
movd xmm1, ebp
mov ebp, dword [esp + 0x48]
movd xmm6, eax
movdqa xmm5, xmm1
punpckldq xmm0, xmm6
mov ecx, esi
movd xmm4, esi
xor ecx, 0xff
punpckldq xmm5, xmm4
movd xmm2, ecx
mov ecx, dword [esp + 0x38]
punpcklqdq xmm0, xmm5
pxor xmm0, xmm3
punpcklqdq xmm1, xmm2
movdqa xmm2, xmm0
shufps xmm1, xmm0, 0xe2
psrlq xmm2, 0x30
xor ecx, eax
mov eax, dword [esp + 0xc]
movd xmm3, ecx
xor eax, ebx
movd xmm4, eax
punpcklqdq xmm3, xmm4
movaps xmm4, xmm0
shufps xmm4, xmm3, 0x24
movdqa xmm3, xmm0
psrlq xmm3, 0x33
paddq xmm1, xmm4
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
movapd xmm2, xmm0
movapd xmm3, xmm0
movapd xmm4, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
psllq xmm4, 0x11
movsd xmm3, xmm2
movapd xmm2, xmm0
psllq xmm2, 0x15
movsd xmm4, xmm2
orpd xmm4, xmm3
movapd xmm2, xmm4
shufpd xmm2, xmm1, 1
xorpd xmm4, xmm2
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
movd eax, xmm4
movd ecx, xmm0
pshufd xmm0, xmm2, 0xff
movd edx, xmm0
xor eax, edx
xor eax, ecx
mov ecx, dword [esp + 8]
and ecx, eax
movdqu xmm0, xmmword [ebp + ecx]
mov esi, ecx
pmovmskb edx, xmm0
test edx, edx
jne 0x7166b7
mov edi, 0x10
mov esi, ecx
nop word cs:[eax + eax]
add esi, edi
add edi, 0x10
and esi, dword [esp + 8]
movdqu xmm0, xmmword [ebp + esi]
pmovmskb edx, xmm0
test edx, edx
je 0x7166a0
tzcnt edx, edx
add edx, esi
and edx, dword [esp + 8]
cmp byte [ebp + edx], 0
js 0x7166d5
movdqa xmm0, xmmword [ebp]
pmovmskb edx, xmm0
tzcnt edx, edx
mov esi, dword [esp + 0x44]
mov edi, edx
sub edi, ecx
sub esi, ecx
xor edi, esi
and edi, dword [esp + 8]
cmp edi, 0x10
jb 0x716020
mov ebp, dword [esp + 0x48]
lea esi, [edx - 0x10]
lea ecx, [edx*8]
shr eax, 0x19
and esi, dword [esp + 8]
lea ecx, [ecx + ecx*2]
neg ecx
movzx ebx, byte [ebp + edx]
lea ecx, [ebp + ecx - 0x18]
mov byte [ebp + edx], al
mov byte [esi + ebp + 0x10], al
cmp bl, 0xff
je 0x716770
mov eax, dword [esp + 0x6c]
movsd xmm1, qword [ecx]
movsd xmm0, qword [eax]
movsd qword [eax], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [eax + 8]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [ecx + 8], xmm0
movq xmm1, qword [ecx + 0x10]
movq xmm0, qword [eax + 0x10]
movq qword [eax + 0x10], xmm1
mov eax, dword [esp + 0x2c]
movq qword [ecx + 0x10], xmm0
mov eax, dword [eax]
jmp 0x716070
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x6c]
mov edi, ebp
lea eax, [edx - 0x10]
mov byte [ebp + edx], 0xff
and eax, dword [esp + 8]
mov byte [eax + ebp + 0x10], 0xff
movsd xmm0, qword [esi + 0x10]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jmp 0x716039
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0xc]
lea eax, [ecx + 1]
mov edx, eax
and eax, 0xfffffff8
shr edx, 3
sub eax, edx
cmp ecx, 8
cmovb eax, ecx
sub eax, edi
mov dword [esi + 8], eax
jmp 0x71698b
mov ebp, 0x10
mov ebx, edi
dec edi
mov eax, ebx
and ebx, 0xfffffff8
shr eax, 3
sub ebx, eax
cmp edi, 8
cmovb ebx, edi
add ebp, esi
push ecx
push 0xff
push ebp
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 8]
sub ebx, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov ecx, dword [eax]
cmp esi, 0xffffffff
mov dword [esp], ecx
je 0x71694e
lea eax, [ecx - 0x18]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x24], ebx
xor ebx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [edx]
mov dword [esp + 0x14], esi
mov esi, ecx
mov dword [esp + 0x28], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 4], edx
jmp 0x7168a6
lea ecx, [edx - 0x10]
shr eax, 0x19
and ecx, edi
mov byte [ebp + edx], al
shl edx, 3
mov byte [ecx + ebp + 0x10], al
lea eax, [ebx*8]
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
lea eax, [edx + edx*2]
mov edx, ebp
movsd xmm0, qword [ecx - 0x18]
sub edx, eax
neg eax
movq xmm1, qword [ecx - 0x10]
movsd qword [ebp + eax - 0x18], xmm0
movq xmm0, qword [ecx - 8]
movq qword [edx - 0x10], xmm1
movq qword [edx - 8], xmm0
cmp ebx, dword [esp + 8]
lea ebx, [ebx + 1]
je 0x71692d
cmp byte [esi + ebx], 0
js 0x716899
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, ebx
neg eax
lea eax, [eax + eax*2]
push dword [esi + eax*8 + 8]
push dword [esi + eax*8]
push dword [esp + 0x1c]
push dword [esp + 0x10]
call fcn.005ced20
add esp, 0x10
mov ecx, edi
and ecx, eax
movdqu xmm0, xmmword [ebp + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x716905
mov esi, 0x10
nop dword [eax]
add ecx, esi
add esi, 0x10
and ecx, edi
movdqu xmm0, xmmword [ebp + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x7168f0
tzcnt edx, edx
mov esi, dword [esp]
add edx, ecx
and edx, edi
cmp byte [ebp + edx], 0
js 0x716850
movdqa xmm0, xmmword [ebp]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x716850
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
test esi, esi
mov dword [eax], ebp
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jne 0x71695d
jmp 0x71698b
mov ecx, dword [esp + 0x1c]
mov dword [eax], ebp
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x20]
mov ecx, 0x18
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
cmp esi, 0xffffffef
je 0x71698b
mov ecx, dword [esp]
sub ecx, eax
push dword [ecx - 4]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 0x80000001
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005df3b0
ud2
mov ecx, ebx
call fcn.005df3f0
ud2