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

Disassembly:
jmp 0x7ef830
sub esp, 0x44
push edi
push dword [esp + 0x4c]
mov edi, ecx
mov dword [esp + 0x10], edi
mov ecx, dword [edi + 4]
call fcn.00405dda
cmp byte [eax + 0x60], 0
jne 0x7efda3
push ebx
add eax, 0x40
lea ecx, [edi + 0x6c]
push ebp
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
push esi
push eax
call fcn.00412279
mov ebp, dword [edi + 0x6c]
call fcn.00402f8b
mov ecx, dword [edi + 0x78]
mov dl, al
mov esi, dword [esp + 0x34]
mov byte [esp + 0x13], dl
lea ecx, [ecx*8]
add ecx, ebp
test dl, dl
cmove ebp, ecx
mov dword [esp + 0x1c], ebp
cmp esi, ebp
je 0x7efab3
mov ebx, dword [esp + 0x38]
nop word [eax + eax]
mov dword [esp + 0x38], ebx
mov eax, esi
mov dword [esp + 0x28], eax
mov edi, esi
mov dword [esp + 0x38], ebx
test dl, dl
je 0x7ef8dd
lea esi, [eax - 8]
cmp esi, ebx
je 0x7ef8d8
nop dword [eax + eax]
mov eax, dword [esi - 8]
cmp eax, 0xfffff000
je 0x7ef8d1
cmp eax, 0xffffe000
jne 0x7ef8d8
add esi, 0xfffffff8
cmp esi, ebx
jne 0x7ef8c0
lea ecx, [edi - 8]
jmp 0x7ef8fd
lea esi, [eax + 8]
cmp esi, ebx
je 0x7ef8fb
mov eax, dword [esi]
cmp eax, 0xfffff000
je 0x7ef8f4
cmp eax, 0xffffe000
jne 0x7ef8fb
add esi, 8
cmp esi, ebx
jne 0x7ef8e4
mov ecx, edi
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
jne 0x7efaa3
cmp byte [esp + 0x13], al
lea eax, [edi - 8]
jne 0x7ef918
mov eax, edi
push eax
push dword [esp + 0x24]
call fcn.00411e82
add esp, 8
test al, al
jne 0x7efaa3
cmp dword [0xa19264], 4
jl 0x7efa81
cmp byte [esp + 0x13], al
je 0x7ef943
add edi, 0xfffffff8
mov eax, dword [edi + 4]
mov dword [esp + 0x24], eax
call fcn.0041600e
mov edi, eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 5
jae 0x7ef970
push 5
push 0x9eff6c
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x7ef983
mov eax, dword [0x9eff6c]
mov dword [ecx], eax
mov al, byte [0x9eff70]
mov byte [ecx + 4], al
add dword [edi + 0xc], 5
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x2c]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [edi + 0xc]
mov ebp, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [edi + 8]
sub eax, edx
mov dword [esp + 0x38], ebp
cmp ebp, eax
jbe 0x7ef9b3
push ebp
push ecx
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x7ef9c5
test ebp, ebp
je 0x7ef9c5
push ebp
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 0xc], ebp
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 0x15
jae 0x7ef9e2
push 0x15
push str._is_not_preserving_
mov ecx, edi
call fcn.0041214d
jmp 0x7efa00
movups xmm0, xmmword [str._is_not_preserving_]
movups xmmword [ecx], xmm0
mov eax, dword [0x9eff84]
mov dword [ecx + 0x10], eax
mov al, byte [0x9eff88]
mov byte [ecx + 0x14], al
add dword [edi + 0xc], 0x15
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x3c]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], ebp
call fcn.0041600e
mov edi, eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp ebp, eax
jbe 0x7efa3e
push ebp
push dword [esp + 0x18]
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x7efa53
test ebp, ebp
je 0x7efa53
push ebp
push dword [esp + 0x18]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 0xc], ebp
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x7efa70
push 2
push 0x930b5c
mov ecx, edi
call fcn.0041214d
jmp 0x7efa7d
mov ax, word [0x930b5c]
mov word [ecx], ax
add dword [edi + 0xc], 2
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dl, byte [esp + 0x13]
mov edi, dword [esp + 0x18]
test dl, dl
lea eax, [ecx - 8]
cmove eax, ecx
mov dword [eax], 0xffffe000
dec dword [edi + 0x70]
inc dword [edi + 0x74]
jmp 0x7efaab
mov dl, byte [esp + 0x13]
mov edi, dword [esp + 0x18]
cmp esi, ebp
jne 0x7ef8a0
lea ecx, [edi + 0x54]
mov dword [esp + 0x24], 6
mov dword [esp + 0x14], ecx
mov esi, dword [ecx]
test esi, esi
je 0x7efd8a
cmp dword [esi + 4], 0
jne 0x7efafb
mov eax, dword [esi + 0xc]
mov ebp, dword [esi]
mov edi, ebp
mov dword [esp + 0x18], ebp
lea ebx, [eax*8]
add ebx, ebp
test dl, dl
jne 0x7efaec
mov edi, ebx
lea eax, [eax*8]
add eax, ebp
test dl, dl
je 0x7efb6a
jmp 0x7efb70
test dl, dl
je 0x7efb3e
mov eax, dword [esi + 0xc]
mov ebp, dword [esi]
mov ecx, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ebp
lea edx, [eax*8]
add edx, ebp
lea eax, [edx - 8]
cmp eax, edx
cmovne ecx, edx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
call fcn.0040e3b3
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x14]
jmp 0x7efb70
mov edi, dword [esi + 0xc]
lea ecx, [esp + 0x34]
mov esi, dword [esi]
mov dword [esp + 0x34], esi
lea eax, [esi + edi*8]
mov dword [esp + 0x38], eax
call fcn.0040adee
mov ebx, dword [esp + 0x38]
lea eax, [esi + edi*8]
mov edi, dword [esp + 0x34]
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x14]
mov ebp, eax
mov dword [esp + 0x18], eax
cmp edi, ebp
je 0x7efd8a
nop dword [eax + eax]
mov dword [esp + 0x40], ebx
mov eax, edi
mov dword [esp + 0x2c], eax
mov esi, edi
test dl, dl
je 0x7efbbd
lea edi, [eax - 8]
cmp edi, ebx
je 0x7efbb8
nop word [eax + eax]
mov eax, dword [edi - 8]
cmp eax, 0xfffff000
je 0x7efbb1
cmp eax, 0xffffe000
jne 0x7efbb8
add edi, 0xfffffff8
cmp edi, ebx
jne 0x7efba0
lea ecx, [esi - 8]
jmp 0x7efbdd
lea edi, [eax + 8]
cmp edi, ebx
je 0x7efbdb
mov eax, dword [edi]
cmp eax, 0xfffff000
je 0x7efbd4
cmp eax, 0xffffe000
jne 0x7efbdb
add edi, 8
cmp edi, ebx
jne 0x7efbc4
mov ecx, esi
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
jne 0x7efd7a
cmp byte [esp + 0x13], al
lea eax, [esi - 8]
jne 0x7efbf8
mov eax, esi
push eax
push dword [esp + 0x24]
call fcn.00411e82
add esp, 8
test al, al
jne 0x7efd7a
cmp dword [0xa19264], 4
jl 0x7efd59
cmp byte [esp + 0x13], al
je 0x7efc23
add esi, 0xfffffff8
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
call fcn.0041600e
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp eax, 5
jae 0x7efc50
push 5
push 0x9eff6c
mov ecx, esi
call fcn.0041214d
mov esi, eax
jmp 0x7efc63
mov eax, dword [0x9eff6c]
mov dword [ecx], eax
mov al, byte [0x9eff70]
mov byte [ecx + 4], al
add dword [esi + 0xc], 5
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x44]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esi + 0xc]
mov ebp, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
sub eax, edx
cmp ebp, eax
jbe 0x7efc8f
push ebp
push ecx
mov ecx, esi
call fcn.0041214d
mov esi, eax
jmp 0x7efca1
test ebp, ebp
je 0x7efca1
push ebp
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esi + 0xc], ebp
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp eax, 0x15
jae 0x7efcbe
push 0x15
push str._is_not_preserving_
mov ecx, esi
call fcn.0041214d
jmp 0x7efcdc
movups xmm0, xmmword [str._is_not_preserving_]
movups xmmword [ecx], xmm0
mov eax, dword [0x9eff84]
mov dword [ecx + 0x10], eax
mov al, byte [0x9eff88]
mov byte [ecx + 0x14], al
add dword [esi + 0xc], 0x15
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x4c]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp + 0x1c], ecx
call fcn.0041600e
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp ebp, eax
jbe 0x7efd16
push ebp
push dword [esp + 0x20]
mov ecx, esi
call fcn.0041214d
mov esi, eax
jmp 0x7efd2b
test ebp, ebp
je 0x7efd2b
push ebp
push dword [esp + 0x20]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esi + 0xc], ebp
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x7efd48
push 2
push 0x930b5c
mov ecx, esi
call fcn.0041214d
jmp 0x7efd55
mov ax, word [0x930b5c]
mov word [ecx], ax
add dword [esi + 0xc], 2
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
cmp byte [esp + 0x13], 0
mov ecx, dword [eax]
lea eax, [edx - 8]
cmove eax, edx
mov dword [eax], 0xffffe000
dec dword [ecx + 4]
inc dword [ecx + 8]
mov dl, byte [esp + 0x13]
cmp edi, ebp
jne 0x7efb80
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0x14], ecx
jne 0x7efac2
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x44
ret 4