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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov edi, ecx
lea eax, [ecx + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 4
xorps xmm0, xmm0
mov eax, dword [sym.imp.libLLVM_17.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0x7c], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ecx
jmp 0x51b050
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x78], eax
mov eax, 0
sbb eax, dword [esp + 0x84]
xorps xmm0, xmm0
jb 0x51c0b5
cmp ebx, 8
jb 0x51c0b5
lea eax, [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [esp + 0x70], edx
bswap edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x3c], esi
bswap esi
add ebx, 0xfffffff8
add ecx, 8
mov dword [eax + 4], ebx
mov dword [esp + 0x6c], ecx
mov dword [eax], ecx
xor eax, eax
mov edi, esi
add edi, 7
setb al
mov dword [esp + 0x84], eax
and edi, 0xfffffff8
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
movups xmmword [esp + 0xac], xmm0
mov byte [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 1
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x88]
mov dword [esp + 0xc8], eax
lea ecx, [esp + 0xa8]
push 0
push 0
push 0
call fcn.005507ce
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], edi
cmp ebx, edi
mov eax, 0
sbb eax, dword [esp + 0x84]
jae 0x51b1b0
mov dword [esp + 0x44], str._corrupt_type__0x_x__datasz:_0x_x_
mov dword [esp + 0x40], 0x55c9a8
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
lea esi, [esp + 0xa8]
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.005507fe
mov edi, dword [esp + 0x10]
mov ecx, edi
push 1
push dword [esp + 0xcc]
call fcn.0045bfc0
mov ecx, dword [edi + 4]
lea ebx, [ecx + ecx*2]
shl ebx, 2
add ebx, dword [edi]
test byte [eax], 1
jne 0x51b2a0
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
movsd xmm0, qword [eax]
movsd qword [ebx], xmm0
inc dword [edi + 4]
mov ebx, dword [esp + 0x78]
mov ecx, esi
call fcn.005507e6
test byte [esp + 0x88], 1
je 0x51b030
jmp 0x51b8a2
mov dword [esp + 0x38], esi
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa0], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x18], xmm0
mov byte [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x34], eax
lea esi, [esp + 0x14]
mov ecx, esi
push 0
push 0
push 0
call fcn.005507ce
mov eax, dword [esp + 0x74]
cmp eax, 0xc0010000
jg 0x51b2c0
cmp eax, 0xc0008000
jg 0x51b2df
cmp eax, 0xc0000000
je 0x51b242
cmp eax, 0xc0000002
jne 0x51b4cf
xor ecx, ecx
cmp dword [esp + 0x70], 0xc0
sete cl
mov eax, str.x86_feature:
mov edx, str.aarch64_feature:
cmove eax, edx
lea edi, [ecx*4 + 0xd]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub edx, ecx
cmp edi, edx
jbe 0x51b3d4
mov ecx, esi
push edi
push eax
call fcn.005507d4
cmp dword [esp + 0x3c], 0x4000000
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
je 0x51b3f9
jmp 0x51b74d
mov ecx, dword [eax + 4]
mov esi, dword [eax + 8]
cmp ecx, 0xa
ja 0x51b323
mov eax, ecx
add al, cl
mov byte [ebx], al
inc ebx
jmp 0x51b356
test eax, eax
jg 0x51b36e
cmp eax, 0xc0010001
je 0x51b3a6
cmp eax, 0xc0010002
je 0x51b2f5
jmp 0x51b4cf
cmp eax, 0xc0008001
je 0x51b3a6
cmp eax, 0xc0008002
jne 0x51b4cf
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 7
ja 0x51b44f
mov ecx, esi
push 8
push str.x86_ISA
call fcn.005507d4
mov ecx, dword [eax + 0x10]
mov esi, eax
add esi, 0x10
jmp 0x51b46d
cmp ecx, 0xfffffff0
jae 0x51c14c
mov edi, ecx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov dword [esp + 0x78], ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, dword [esp + 0x78]
add esp, 4
mov dword [ebx + 8], eax
add edi, 2
mov dword [ebx], edi
mov dword [ebx + 4], ecx
mov ebx, eax
mov edi, dword [esp + 0x10]
inc ecx
push ecx
push esi
push ebx
call sub.msvcrt.dll_memmove
add esp, 0xc
inc dword [edi + 4]
mov ebx, dword [esp + 0x78]
jmp 0x51b886
cmp eax, 1
je 0x51b4a9
cmp eax, 2
jne 0x51b4cf
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 0x13
ja 0x51b696
mov ecx, esi
push 0x14
push str.no_copy_on_protected
call fcn.005507d4
jmp 0x51b6ac
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 0xb
ja 0x51b52a
mov ecx, esi
push 0xc
push str.x86_feature
call fcn.005507d4
mov ecx, dword [eax + 0x10]
mov esi, eax
add esi, 0x10
jmp 0x51b54f
push edi
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [esp + 0x24], edi
cmp dword [esp + 0x3c], 0x4000000
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
jne 0x51b74d
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
test ebx, ebx
je 0x51b65e
bswap ebx
cmp dword [esp + 0x70], 0xc0
jne 0x51b8b6
test bl, 1
je 0x51bcae
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bc76
mov ecx, esi
push 3
push 0x55ff0c
call fcn.005507d4
and ebx, 0xfffffffe
jne 0x51bc8d
jmp 0x51b76d
mov dword [eax + 4], 0x20415349
mov dword [eax], 0x20363878
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x24], ecx
mov eax, esi
lea esi, [esp + 0x24]
xor ebx, ebx
cmp dword [esp + 0x70], 0x28000c0
sete bl
mov edx, str.used:
mov edi, str.needed:
cmove edx, edi
lea ebx, [ebx*2 + 6]
mov edi, dword [eax + 0xc]
sub edi, ecx
cmp ebx, edi
jbe 0x51b584
mov ecx, eax
push ebx
push edx
call fcn.005507d4
jmp 0x51b591
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 0xb
ja 0x51b6cd
mov ecx, esi
push 0xc
push str.stack_size:
call fcn.005507d4
jmp 0x51b6e6
mov dword [esp + 0x44], str._application_specific_type_0x_x_
mov dword [esp + 0x40], 0x55ffc4
mov dword [esp + 0x48], eax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.005507fe
mov eax, dword [esp + 0x34]
test byte [eax], 1
jne 0x51b7b8
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
mov edi, dword [esp + 0x10]
mov ecx, esi
call fcn.005507e6
test byte [esp + 0x98], 1
jne 0x51b814
jmp 0x51b823
mov dword [eax + 8], 0x20657275
mov dword [eax + 4], 0x74616566
mov dword [eax], 0x20363878
mov ecx, dword [esp + 0x24]
add ecx, 0xc
mov dword [esp + 0x24], ecx
mov eax, esi
lea esi, [esp + 0x24]
xor ebx, ebx
cmp dword [esp + 0x70], 0x18000c0
sete bl
mov edx, str.used:
mov edi, str.needed:
cmove edx, edi
lea ebx, [ebx*2 + 6]
mov edi, dword [eax + 0xc]
sub edi, ecx
cmp ebx, edi
jbe 0x51b5f3
mov ecx, eax
push ebx
push edx
call fcn.005507d4
jmp 0x51b600
push ebx
push edx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [esi], ebx
mov edi, dword [esp + 0x10]
lea esi, [esp + 0x14]
cmp dword [esp + 0x3c], 0x4000000
mov eax, dword [esp + 0x38]
jne 0x51b74d
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
test ebx, ebx
je 0x51b65e
bswap ebx
test bl, 1
je 0x51b938
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 0xe
ja 0x51b8ee
mov ecx, esi
push 0xf
push str.x86_64_baseline
call fcn.005507d4
and ebx, 0xfffffffe
jne 0x51b917
jmp 0x51b76d
push ebx
push edx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [esi], ebx
mov edi, dword [esp + 0x10]
lea esi, [esp + 0x14]
cmp dword [esp + 0x3c], 0x4000000
mov eax, dword [esp + 0x38]
jne 0x51b74d
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
test ebx, ebx
je 0x51b65e
bswap ebx
test bl, 1
je 0x51b9a8
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51b970
mov ecx, esi
push 3
push 0x55ff51
call fcn.005507d4
and ebx, 0xfffffffe
jne 0x51b987
jmp 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 5
ja 0x51b680
mov ecx, esi
push 6
push str._None_
call fcn.005507d4
jmp 0x51b76d
mov word [eax + 4], 0x3e65
mov dword [eax], 0x6e6f4e3c
add dword [esp + 0x24], 6
jmp 0x51b76d
movups xmm0, xmmword [str.no_copy_on_protected]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0x64657463
add dword [esp + 0x24], 0x14
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x51b76d
mov dword [esp + 0x44], str.__corrupt_length:_0x_x_
jmp 0x51b755
mov dword [eax + 8], 0x203a657a
mov dword [eax + 4], 0x6973206b
mov dword [eax], 0x63617473
add dword [esp + 0x24], 0xc
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x8000000
jne 0x51b74d
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
bswap ecx
bswap eax
mov dword [esp + 0x40], str.0:x
mov dword [esp + 0x44], 5
lea edx, [esp + 0x60]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0x55ffd4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x60], eax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.00550804
jmp 0x51b76d
mov dword [esp + 0x44], str._corrupt_length:_0x_x_
mov dword [esp + 0x40], 0x55ffc4
mov dword [esp + 0x48], eax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.005507fe
mov eax, dword [esp + 0x34]
test byte [eax], 1
jne 0x51b7a0
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.005507e6
test byte [esp + 0x98], 1
jne 0x51b814
jmp 0x51b823
mov ebx, dword [eax + 4]
mov esi, dword [eax + 8]
cmp ebx, 0xa
ja 0x51b7c7
mov eax, ebx
add al, bl
mov byte [esp], al
lea eax, [esp + 1]
jmp 0x51b7f3
mov ebx, dword [eax + 4]
mov esi, dword [eax + 8]
cmp ebx, 0xa
mov edi, dword [esp + 0x10]
jbe 0x51b7ab
cmp ebx, 0xfffffff0
jae 0x51c153
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 8], eax
add edi, 2
mov dword [esp], edi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x10]
inc ebx
push ebx
push esi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
lea esi, [esp + 0x14]
mov ecx, esi
call fcn.005507e6
test byte [esp + 0x98], 1
je 0x51b823
push dword [esp + 0xa0]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, edi
push 1
lea eax, [esp + 4]
push eax
call fcn.0045c360
mov ecx, dword [edi]
mov edx, dword [edi + 4]
lea edx, [edx + edx*2]
mov esi, dword [eax + 8]
mov dword [ecx + edx*4 + 8], esi
movsd xmm0, qword [eax]
movsd qword [ecx + edx*4], xmm0
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
inc dword [edi + 4]
test byte [esp], 1
je 0x51b872
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea eax, [ebp + 8]
mov ebx, dword [eax + 4]
mov ecx, dword [esp + 0x80]
sub ebx, ecx
add dword [eax], ecx
mov dword [eax + 4], ebx
lea esi, [esp + 0xa8]
mov ecx, esi
call fcn.005507e6
test byte [esp + 0x88], 1
je 0x51b030
push dword [esp + 0x90]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x51b030
test bl, 1
je 0x51bd1e
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bce6
mov ecx, esi
push 3
push 0x55ff14
call fcn.005507d4
and ebx, 0xfffffffe
jne 0x51bcfd
jmp 0x51b76d
mov dword [eax + 0xb], 0x656e696c
mov dword [eax + 8], 0x6c657361
mov dword [eax + 4], 0x622d3436
mov dword [eax], 0x2d363878
add dword [esp + 0x24], 0xf
and ebx, 0xfffffffe
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51ba68
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 2
je 0x51ba7b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 8
ja 0x51b9d8
mov ecx, esi
push 9
push str.x86_64_v2
call fcn.005507d4
and ebx, 0xfffffffd
jne 0x51b9f7
jmp 0x51b76d
mov byte [eax + 2], 0x36
mov word [eax], 0x3878
add dword [esp + 0x24], 3
and ebx, 0xfffffffe
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51baf9
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 2
je 0x51bb0c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51ba22
mov ecx, esi
push 3
push 0x55ff55
call fcn.005507d4
and ebx, 0xfffffffd
jne 0x51ba39
jmp 0x51b76d
mov byte [eax + 8], 0x32
mov dword [eax + 4], 0x762d3436
mov dword [eax], 0x2d363878
add dword [esp + 0x24], 9
and ebx, 0xfffffffd
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bb82
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 4
jne 0x51ba84
jmp 0x51bb95
mov byte [eax + 2], 0x37
mov word [eax], 0x3878
add dword [esp + 0x24], 3
and ebx, 0xfffffffd
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bbed
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 4
jne 0x51bb15
jmp 0x51bc00
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 2
jne 0x51b941
test bl, 4
je 0x51bb95
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 8
ja 0x51baab
mov ecx, esi
push 9
push str.x86_64_v3
call fcn.005507d4
and ebx, 0xfffffffb
jne 0x51baca
jmp 0x51b76d
mov byte [eax + 8], 0x33
mov dword [eax + 4], 0x762d3436
mov dword [eax], 0x2d363878
add dword [esp + 0x24], 9
and ebx, 0xfffffffb
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bd56
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 8
jne 0x51bb9e
jmp 0x51c09c
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 2
jne 0x51b9b1
test bl, 4
je 0x51bc00
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bb3c
mov ecx, esi
push 3
push 0x55ff59
call fcn.005507d4
and ebx, 0xfffffffb
jne 0x51bb53
jmp 0x51b76d
mov byte [eax + 2], 0x58
mov word [eax], 0x4d4d
add dword [esp + 0x24], 3
and ebx, 0xfffffffb
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bd6e
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 8
jne 0x51bc09
jmp 0x51bd81
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 4
jne 0x51ba84
test bl, 8
je 0x51c09c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 8
ja 0x51bbc9
mov ecx, esi
push 9
push str.x86_64_v4
call fcn.005507d4
and ebx, 0xfffffff7
jne 0x51c073
jmp 0x51b76d
mov byte [eax + 8], 0x34
mov dword [eax + 4], 0x762d3436
mov dword [eax], 0x2d363878
add dword [esp + 0x24], 9
and ebx, 0xfffffff7
jne 0x51c073
jmp 0x51b76d
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 4
jne 0x51bb15
test bl, 8
je 0x51bd81
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bc30
mov ecx, esi
push 3
push 0x55ff5d
call fcn.005507d4
and ebx, 0xfffffff7
jne 0x51bc47
jmp 0x51b76d
mov byte [eax + 2], 0x4d
mov word [eax], 0x4d58
add dword [esp + 0x24], 3
and ebx, 0xfffffff7
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51be2c
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 0x10
jne 0x51bd8a
jmp 0x51be3f
mov byte [eax + 2], 0x49
mov word [eax], 0x5442
add dword [esp + 0x24], 3
and ebx, 0xfffffffe
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51be9d
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 2
je 0x51c09c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bdf3
mov ecx, esi
push 3
push 0x55ff10
call fcn.005507d4
and ebx, 0xfffffffd
jne 0x51c073
jmp 0x51b76d
mov byte [eax + 2], 0x54
mov word [eax], 0x4249
add dword [esp + 0x24], 3
and ebx, 0xfffffffe
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51beb5
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 2
je 0x51c09c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 4
ja 0x51be0f
mov ecx, esi
push 5
push str.SHSTK
call fcn.005507d4
and ebx, 0xfffffffd
jne 0x51c073
jmp 0x51b76d
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 8
jne 0x51bb9e
jmp 0x51c09c
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 8
jne 0x51bc09
test bl, 0x10
je 0x51be3f
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51bdb1
mov ecx, esi
push 3
push 0x55ff61
call fcn.005507d4
and ebx, 0xffffffef
jne 0x51bdc8
jmp 0x51b76d
mov byte [eax + 2], 0x4d
mov word [eax], 0x4d59
add dword [esp + 0x24], 3
and ebx, 0xffffffef
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51becd
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, 0x20
jne 0x51be48
jmp 0x51beec
mov byte [eax + 2], 0x43
mov word [eax], 0x4150
add dword [esp + 0x24], 3
and ebx, 0xfffffffd
jne 0x51c073
jmp 0x51b76d
mov byte [eax + 4], 0x4b
mov dword [eax], 0x54534853
add dword [esp + 0x24], 5
and ebx, 0xfffffffd
jne 0x51c073
jmp 0x51b76d
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 0x10
jne 0x51bd8a
test bl, 0x20
je 0x51beec
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 2
ja 0x51be67
mov ecx, esi
push 3
push 0x55ff65
call fcn.005507d4
jmp 0x51be75
mov byte [eax + 2], 0x4d
mov word [eax], 0x4d5a
add dword [esp + 0x24], 3
and ebx, 0xffffffdf
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bee2
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
jmp 0x51beec
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 2
jne 0x51bcb7
jmp 0x51c09c
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 2
jne 0x51bd27
jmp 0x51c09c
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 0x20
jne 0x51be48
jmp 0x51beec
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, 0x40
je 0x51bf41
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 3
ja 0x51bf10
mov ecx, esi
push 4
push str.FXSR
call fcn.005507d4
jmp 0x51bf1b
mov dword [eax], 0x52535846
add dword [esp + 0x24], 4
and ebx, 0xffffffbf
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bf9e
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
test bl, bl
jns 0x51bfb8
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 4
ja 0x51bf64
mov ecx, esi
push 5
push str.XSAVE
call fcn.005507d4
jmp 0x51bf73
mov byte [eax + 4], 0x45
mov dword [eax], 0x56415358
add dword [esp + 0x24], 5
and ebx, 0xffffff7f
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51bfae
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
jmp 0x51bfb8
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test bl, bl
js 0x51bf45
jmp 0x51bfb8
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test ebx, 0x100
je 0x51c026
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 7
ja 0x51bfdf
mov ecx, esi
push 8
push str.XSAVEOPT
call fcn.005507d4
jmp 0x51bff1
mov dword [eax + 4], 0x54504f45
mov dword [eax], 0x56415358
add dword [esp + 0x24], 8
and ebx, 0xfffffeff
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51c01c
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
jmp 0x51c026
mov word [eax], 0x202c
add dword [esp + 0x24], 2
test ebx, 0x200
jne 0x51c037
test ebx, ebx
jne 0x51c09c
jmp 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 5
ja 0x51c056
mov ecx, esi
push 6
push str.XSAVEC
call fcn.005507d4
jmp 0x51c067
mov word [eax + 4], 0x4345
mov dword [eax], 0x56415358
add dword [esp + 0x24], 6
and ebx, 0xfffffdff
je 0x51b76d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
ja 0x51c092
mov ecx, esi
push 2
push 0x55a0ac
call fcn.005507d4
jmp 0x51c09c
mov word [eax], 0x202c
add dword [esp + 0x24], 2
mov dword [esp + 0x44], str._unknown_flags:_0x_x_
mov dword [esp + 0x40], 0x55ffc4
mov dword [esp + 0x48], ebx
jmp 0x51b761
test ebx, ebx
je 0x51c144
push 0x20
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], 0x21
mov dword [esp + 0x44], 0x1f
movups xmm0, xmmword [0x55fe5c]
movups xmmword [eax + 0xf], xmm0
movups xmm0, xmmword [str._corrupted_GNU_PROPERTY_TYPE_0_]
movups xmmword [eax], xmm0
mov byte [eax + 0x1f], 0
mov ecx, edi
push 1
lea eax, [esp + 0x44]
push eax
call fcn.0045c360
mov ecx, dword [edi]
mov edx, dword [edi + 4]
lea edx, [edx + edx*2]
mov esi, dword [eax + 8]
mov dword [ecx + edx*4 + 8], esi
movsd xmm0, qword [eax]
movsd qword [ecx + edx*4], xmm0
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
inc dword [edi + 4]
test byte [esp + 0x40], 1
je 0x51c144
push dword [esp + 0x48]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebx
call fcn.00407790
mov ecx, esp
call fcn.00407790
int3