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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x14], 0
cmp byte [0x101331a4], 0
mov ebp, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
je 0x10022100
mov eax, dword [0x10132ae4]
test eax, eax
jne 0x1002202f
mov edx, 0xe80c2f78
mov ecx, 0x10111551
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ae4], eax
cmp dword [eax + ebp], edi
jle 0x10022100
mov eax, dword [0x10132ad4]
test eax, eax
jne 0x1002206f
mov edx, 0xe80c2f78
mov ecx, 0x10111561
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ad4], eax
cmp byte [eax + ebp], 0
mov ecx, 0x10113e60
mov edx, 0x10113e5c
mov dword [esp + 0x48], edi
cmove edx, ecx
mov dword [esp + 0x4c], edi
mov ecx, edx
xorps xmm0, xmm0
movups xmmword [esp + 0x38], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10022095
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x40]
call fcn.10003a40
movups xmm0, xmmword [esp + 0xa0]
lea eax, [esp + 0x38]
push eax
push 0
lea ecx, [esp + 0x1c]
movups xmmword [esp + 0x58], xmm0
call fcn.100244e0
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x100220fc
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100220f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
mov edi, dword [esp + 0x18]
cmp byte [0x101331a5], 0
je 0x100222ef
mov eax, dword [0x10133188]
xorps xmm0, xmm0
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0xf
movups xmmword [esp + 0x20], xmm0
mov word [esp + 0x20], 0x24
test eax, eax
jne 0x10022163
mov edx, 0xe80c2f78
mov ecx, 0x10113e29
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10133188], eax
mov edx, dword [eax + ebp]
lea ecx, [esp + 0x38]
call fcn.1000f980
mov ecx, eax
cmp dword [ecx + 0x14], 0xf
mov ebx, dword [ecx + 0x10]
jbe 0x1002217c
mov ecx, dword [ecx]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub eax, edx
mov dword [esp + 0x10], edx
push ebx
push ecx
cmp ebx, eax
ja 0x100221c2
cmp dword [esp + 0x3c], 0xf
lea esi, [esp + 0x28]
lea eax, [edx + ebx]
cmova esi, dword [esp + 0x28]
mov dword [esp + 0x38], eax
lea eax, [esi + edx]
push eax
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + esi]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [esp + 0x20]
jmp 0x100221d0
push dword [esp + 0x18]
lea ecx, [esp + 0x2c]
push ebx
call fcn.1000ee20
push eax
lea ecx, [esp + 0x64]
call fcn.100148a0
movups xmm1, xmmword [esp + 0xa0]
movups xmmword [esp + 0x78], xmm1
cmp edi, dword [esp + 0x1c]
je 0x1002222b
xorps xmm0, xmm0
mov ecx, 0xf
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x60]
mov dword [edi + 0x14], 0
mov byte [esp + 0x60], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x70]
movq qword [edi + 0x10], xmm0
movups xmmword [edi + 0x18], xmm1
add edi, 0x28
mov dword [esp + 0x18], edi
jmp 0x10022242
lea eax, [esp + 0x60]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x10022270
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022266
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100222df
push ecx
push edx
call fcn.100d6ec2
add esp, 8
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x100222a2
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022298
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100222df
push ecx
push edx
call fcn.100d6ec2
add esp, 8
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
mov byte [esp + 0x38], 0
cmp ecx, 0xf
jbe 0x100222ef
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100222e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100222e5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d6ec2
add esp, 8
cmp byte [0x101331a6], 0
je 0x10022420
test ebp, ebp
je 0x10022420
mov eax, dword [0x101332e8]
test eax, eax
jne 0x1002233b
mov edx, 0xe80c2f78
mov ecx, 0x10113e35
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x101332e8], eax
movss xmm0, dword [eax + ebp]
comiss xmm0, dword [0x1012c718]
seta al
test al, al
je 0x10022420
xorps xmm0, xmm0
mov eax, dword [str.flashed]
mov ecx, 0xf
mov dword [esp + 0x38], eax
mov ax, word [0x10113e70]
movups xmm1, xmmword [esp + 0xa0]
mov word [esp + 0x3c], ax
mov al, byte [0x10113e72]
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x48], 7
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x3e], al
mov byte [esp + 0x3f], 0
movups xmmword [esp + 0x50], xmm1
cmp edi, dword [esp + 0x1c]
je 0x100223d7
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x38]
mov dword [edi + 0x14], 0
mov byte [esp + 0x38], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [edi + 0x10], xmm0
movups xmmword [edi + 0x18], xmm1
add edi, 0x28
mov dword [esp + 0x18], edi
jmp 0x100223ee
lea eax, [esp + 0x38]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x10022420
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022416
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
cmp byte [0x101331a7], 0
je 0x10022512
mov eax, dword [0x10132f48]
test eax, eax
jne 0x10022464
mov edx, 0xe80c2f78
mov ecx, 0x101116f5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132f48], eax
cmp byte [eax + ebp], 0
je 0x10022512
lea eax, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x68]
call fcn.10024430
cmp edi, dword [esp + 0x1c]
je 0x100224c9
xorps xmm0, xmm0
mov ecx, 0xf
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x60]
mov dword [edi + 0x14], 0
mov byte [esp + 0x60], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x70]
movq qword [edi + 0x10], xmm0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [edi + 0x18], xmm0
add edi, 0x28
mov dword [esp + 0x18], edi
jmp 0x100224e0
lea eax, [esp + 0x60]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x10022512
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022508
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
cmp byte [0x101331a8], 0
je 0x100225e9
xorps xmm0, xmm0
mov eax, dword [0x10113e88]
mov ecx, 0xf
mov dword [esp + 0x48], 0xc
movups xmm1, xmmword [esp + 0xa0]
mov dword [esp + 0x4c], ecx
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x40], eax
movq xmm0, qword [str.reloading...]
movq qword [esp + 0x38], xmm0
mov byte [esp + 0x44], 0
movups xmmword [esp + 0x50], xmm1
cmp edi, dword [esp + 0x1c]
je 0x100225a0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x38]
mov dword [edi + 0x14], 0
mov byte [esp + 0x38], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [edi + 0x10], xmm0
movups xmmword [edi + 0x18], xmm1
add edi, 0x28
mov dword [esp + 0x18], edi
jmp 0x100225b7
lea eax, [esp + 0x38]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x100225e9
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100225df
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
cmp byte [0x101331a9], 0
je 0x1002270c
mov eax, dword [0x10132a80]
test eax, eax
jne 0x1002262d
mov edx, 0xe80c2f78
mov ecx, 0x10111485
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132a80], eax
cmp byte [eax + ebp], 0
je 0x1002270c
mov ecx, 0xf
mov ax, word [0x10113e7c]
movups xmm1, xmmword [esp + 0xa0]
mov word [esp + 0x40], ax
movq xmm0, qword [str.defusing...]
mov al, byte [0x10113e7e]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0xb
mov dword [esp + 0x4c], ecx
movq qword [esp + 0x38], xmm0
mov byte [esp + 0x42], al
mov byte [esp + 0x43], 0
movups xmmword [esp + 0x50], xmm1
cmp edi, dword [esp + 0x1c]
je 0x100226c3
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x38]
mov dword [edi + 0x14], 0
mov byte [esp + 0x38], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [edi + 0x10], xmm0
movups xmmword [edi + 0x18], xmm1
add edi, 0x28
mov dword [esp + 0x18], edi
jmp 0x100226da
lea eax, [esp + 0x38]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x1002270c
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022702
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
cmp byte [0x101331aa], 0
je 0x1002282b
mov eax, dword [0x101332ec]
test eax, eax
jne 0x10022750
mov edx, 0xe80c2f78
mov ecx, 0x10113e19
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x101332ec], eax
cmp byte [eax + ebp], 0
je 0x1002282b
mov ecx, 0xf
mov ax, word [0x10113e9c]
movups xmm1, xmmword [esp + 0xa0]
mov word [esp + 0x40], ax
movq xmm0, qword [str.rescuing...]
mov al, byte [0x10113e9e]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0xb
mov dword [esp + 0x4c], ecx
movq qword [esp + 0x38], xmm0
mov byte [esp + 0x42], al
mov byte [esp + 0x43], 0
movups xmmword [esp + 0x50], xmm1
cmp edi, dword [esp + 0x1c]
je 0x100227e2
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
movups xmm0, xmmword [esp + 0x38]
mov dword [edi + 0x14], 0
mov byte [esp + 0x38], 0
movups xmmword [edi], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [edi + 0x10], xmm0
movups xmmword [edi + 0x18], xmm1
add edi, 0x28
jmp 0x100227f9
lea eax, [esp + 0x38]
push eax
push edi
lea ecx, [esp + 0x1c]
call fcn.100244e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xf
jbe 0x1002282b
mov edx, dword [esp + 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022821
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
mov esi, dword [esp + 0x14]
xor ebx, ebx
cmp esi, edi
je 0x100228f8
nop dword [eax]
push esi
lea ecx, [esp + 0x64]
call fcn.100148a0
movzx eax, byte [0x101315ca]
mov ecx, dword [esp + 0x90]
push eax
movzx eax, byte [0x101315c9]
add ecx, 3
push eax
movd xmm3, dword [0x101315bc]
lea eax, [esp + 0x80]
movups xmm0, xmmword [esi + 0x18]
push eax
push 0
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0xa8]
push dword [0x101332e4]
add eax, ebx
cvtdq2ps xmm3, xmm3
movd xmm2, eax
mov eax, dword [esp + 0xb0]
add eax, ecx
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movups xmmword [esp + 0x90], xmm0
call fcn.1007f4e0
add ebx, dword [0x101315bc]
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100228ed
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100228e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022944
push ecx
push edx
call fcn.100d6ec2
add esp, 8
add esi, 0x28
cmp esi, edi
jne 0x10022840
mov esi, dword [esp + 0x14]
test esi, esi
je 0x10022954
push ecx
mov edx, edi
mov ecx, esi
call fcn.10024470
mov ecx, dword [esp + 0x20]
mov eax, 0x66666667
sub ecx, esi
add esp, 4
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x1002294a
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1002294a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.100d6ec2
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret