Function at 0x4a12c0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov esi, esp
mov dword [esi + 0x140], ebp
mov dword [esi + 0x144], esp
mov dword [esi + 0x150], 0xffffffff
mov dword [esi + 0x14c], 0x703730
mov ebx, dword [ebp + 8]
mov dword [esi + 0x5c], edx
mov edx, dword [ebp + 0xc]
mov edi, ecx
lea ecx, [esi + 0x148]
mov eax, dword fs:[0]
mov dword [esi + 0x148], eax
mov dword fs:[0], ecx
lea ecx, [esi + 0x30]
push ebx
call fcn.0049f430
add esp, 4
cmp dword [esi + 0x30], 0x2c
jne 0x4a24b7
mov edx, edi
mov edi, dword [esi + 0x34]
movzx eax, byte [esi + 0x38]
test ebx, ebx
mov byte [esi + 0x26], al
mov dword [esi + 0x20], edi
je 0x4a24e9
mov ecx, dword [esi + 0x5c]
lea eax, [ebx + ebx*2]
mov dword [esi + 0x28], edx
lea eax, [ecx + eax*8]
mov dword [esi + 0x10c], eax
cmp byte [esi + 0x26], 0
je 0x4a13b0
mov ecx, dword [edi + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1386
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov edi, dword [esi + 0x20]
mov byte [eax + edx], 0x2c
inc dword [ecx + 8]
movzx eax, byte [edi + 0x37]
cmp al, 2
jne 0x4a1460
mov edx, dword [esi + 0x28]
jmp 0x4a15f0
mov byte [esi + 0x26], 1
movzx eax, byte [edi + 0x37]
test al, 1
jne 0x4a1520
cmp al, 2
je 0x4a15f0
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 8]
mov dword [esi + 0x18], ecx
dec ecx
cmp ecx, eax
jae 0x4a1537
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0x24]
mov edi, dword [ecx + 8]
mov dword [esi + 0x1c], eax
xor eax, eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x2c], ecx
jmp 0x4a142c
mov eax, dword [ecx]
add eax, edi
push ebx
push dword [esi + 0x1c]
push eax
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, ebx
mov ebx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x18]
add edi, ebx
mov dword [ecx + 8], edi
inc eax
cmp eax, edx
je 0x4a15db
mov edx, dword [ecx + 4]
mov dword [esi + 8], eax
sub edx, edi
cmp edx, ebx
jae 0x4a1400
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
mov edx, edi
push ebx
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x10]
mov edi, dword [ecx + 8]
jmp 0x4a1400
mov ecx, dword [edi + 0x48]
test al, al
mov dword [esi + 8], ecx
jne 0x4a14ad
mov eax, dword [edi + 8]
cmp dword [edi + 0x44], eax
ja 0x4a14ad
mov ecx, dword [esi + 8]
mov edx, dword [edi + 0x18]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [edi + 0x10]
sub eax, ebx
cmp eax, edx
jae 0x4a14f2
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 8]
mov eax, edx
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
mov edx, ebx
mov dword [esi + 0x10], eax
push eax
call fcn.00720870
add esp, 4
jmp 0x4a14e6
mov ecx, dword [esi + 8]
mov edx, dword [edi + 0x30]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [edi + 0x28]
sub eax, ebx
cmp eax, edx
jae 0x4a14f2
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 8]
mov eax, edx
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
mov edx, ebx
mov dword [esi + 0x10], eax
push eax
call fcn.00720870
add esp, 4
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov ebx, dword [eax + 8]
mov eax, dword [esi + 8]
mov eax, dword [eax]
add eax, ebx
push edx
push ecx
push eax
mov edi, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov dword [eax + 8], ebx
movzx eax, byte [edi + 0x37]
test al, 1
je 0x4a13c0
cmp al, 2
je 0x4a15f0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x44]
cmp ecx, eax
jbe 0x4a1542
jmp 0x4a15f0
mov ecx, dword [esi + 0x18]
cmp ecx, eax
ja 0x4a15f0
cmp byte [edi + 0x36], 0
je 0x4a15f0
mov eax, dword [edi + 0x40]
mov dword [esi + 0x150], 0
test eax, eax
je 0x4a27fa
mov ecx, dword [edi + 0x38]
lea eax, [ecx + eax*4 - 4]
lea ecx, [esi + 0x68]
mov dword [esi + 0xe8], eax
lea eax, [esi + 0xe8]
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], 0x6038e0
lea eax, [esi + 0xc4]
mov edx, dword [edi + 0x48]
mov dword [esi + 0x30], 0x742ccc
mov dword [esi + 0x34], 2
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
mov dword [esi + 0x3c], 1
mov dword [esi + 0x40], 0
mov byte [esi + 0xf], 1
push eax
call fcn.00501b20
add esp, 4
movzx eax, byte [esi + 0x68]
cmp al, 4
jne 0x4a243f
mov eax, dword [esi + 0xe8]
mov edi, dword [esi + 0x20]
inc dword [eax]
jmp 0x4a139e
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
movzx eax, byte [edi + 0x37]
cmp al, 2
jne 0x4a1528
nop dword [eax]
cmp dword [edi], 0
je 0x4a1604
mov eax, dword [edi + 4]
test eax, eax
je 0x4a2710
dec eax
mov dword [edi + 4], eax
movzx ebx, byte [edi + 0x50]
mov byte [edi + 0x50], 0
test bl, bl
je 0x4a1620
cmp byte [edi + 0x37], 2
jne 0x4a166c
jmp 0x4a16ed
mov ecx, dword [edi + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1653
mov byte [esi + 8], bl
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
push 1
mov dword [esi + 0x10], ecx
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 0x10]
movzx ebx, byte [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov edi, dword [esi + 0x20]
mov byte [eax + edx], 0x28
inc dword [ecx + 8]
mov edx, dword [esi + 0x28]
cmp byte [edi + 0x37], 2
je 0x4a16ed
cmp byte [edi + 0x35], 0
je 0x4a16ed
mov byte [edi + 0x51], 0
mov eax, dword [edi + 0x44]
inc eax
mov dword [edi + 0x44], eax
cmp eax, dword [edi + 8]
ja 0x4a16ed
mov ecx, dword [edi + 0x48]
mov byte [esi + 8], bl
mov edx, dword [edi + 0x18]
mov edi, dword [edi + 0x10]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov dword [esi + 0x10], ecx
sub eax, ebx
cmp eax, edx
jae 0x4a16ca
mov eax, edx
mov dword [esi + 0x1c], edi
mov byte [esi + 0xf], 1
mov dword [esi + 0x150], 0
mov edx, ebx
mov dword [esi + 0x18], eax
push eax
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
mov ebx, dword [ecx + 8]
mov eax, dword [ecx]
add eax, ebx
push edx
push edi
push eax
mov edi, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
add ebx, edi
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov dword [eax + 8], ebx
movzx ebx, byte [esi + 8]
mov eax, dword [edi]
movzx ecx, bl
mov dword [esi + 0x8c], ecx
test eax, eax
je 0x4a170b
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4a271a
dec ecx
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x5c]
cmp byte [edi + 0x37], 2
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
je 0x4a17cb
cmp byte [edi + 0x35], 0
je 0x4a17cb
mov edx, dword [edi + 0x44]
mov dword [esi + 0x60], ecx
lea ecx, [edx - 1]
mov dword [esi + 0x18], edx
cmp ecx, dword [edi + 8]
mov ecx, dword [esi + 0x60]
jae 0x4a17cb
mov dword [esi + 0x64], ebx
mov ebx, dword [edi + 0x48]
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov edi, dword [ebx + 8]
mov dword [esi + 0x1c], eax
xor eax, eax
mov dword [esi + 0x10], edx
mov dword [esi + 0x2c], ebx
jmp 0x4a1782
mov eax, dword [ebx]
add eax, edi
push edx
push dword [esi + 0x1c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [esi + 8]
add edi, edx
mov dword [ebx + 8], edi
inc eax
cmp eax, dword [esi + 0x18]
je 0x4a17c0
mov ecx, dword [ebx + 4]
mov dword [esi + 8], eax
sub ecx, edi
cmp ecx, edx
jae 0x4a1760
mov eax, edx
mov byte [esi + 0x17], 1
mov dword [esi + 0x150], 1
mov ecx, ebx
mov edx, edi
push eax
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 0x10]
mov edi, dword [ebx + 8]
jmp 0x4a1760
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x64]
mov ecx, dword [esi + 0x60]
mov eax, dword [edi]
test eax, eax
je 0x4a17e8
mov eax, dword [edi + 4]
test eax, eax
je 0x4a273f
dec eax
mov dword [edi + 4], eax
mov dword [esi + 0x150], 1
mov edx, dword [edi + 0x48]
lea eax, [esi + 0xe8]
mov dword [esi + 0x30], 0x8f6524
mov dword [esi + 0x34], 1
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
mov byte [esi + 0x17], 1
mov dword [esi + 0x150], 1
lea ecx, [esi + 0x54]
mov dword [esi + 0x90], eax
lea eax, [esi + 0x90]
mov dword [esi + 0x94], 0x42df20
mov dword [esi + 0x38], eax
lea eax, [esi + 0x30]
mov dword [esi + 0x3c], 1
mov dword [esi + 0x40], 0
push eax
call fcn.00501b20
add esp, 4
movzx eax, byte [esi + 0x54]
cmp al, 4
je 0x4a18d8
lea edx, [esi + 0x55]
lea edi, [esi + 0x115]
mov byte [esi + 0x17], 1
mov ecx, dword [edx + 3]
mov dword [edi + 3], ecx
mov ecx, dword [edx]
lea edx, [esi + 0x114]
mov dword [edi], ecx
lea ecx, [esi + 0x30]
mov byte [esi + 0x114], al
call fcn.006924f0
lea ecx, [esi + 0x34]
mov eax, dword [esi + 0x30]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
movsd xmm2, qword [ecx + 0x10]
cmp eax, 0x2c
movsd qword [esi + 0xa8], xmm1
movsd xmm1, qword [ecx + 0x18]
movsd qword [esi + 0xa0], xmm0
movsd qword [esi + 0xb0], xmm2
movsd qword [esi + 0xb8], xmm1
jne 0x4a2750
mov ecx, dword [esi + 0x20]
cmp dword [ecx], 0
je 0x4a18ef
mov eax, dword [ecx + 4]
mov edx, 0xffffffff
inc eax
cmove eax, edx
mov dword [ecx + 4], eax
mov ecx, dword [ecx + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1911
mov byte [esi + 0x17], 1
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov byte [eax + edx], 0x2c
inc dword [ecx + 8]
mov ecx, dword [esi + 0x20]
cmp byte [ecx + 0x37], 2
je 0x4a19c2
mov eax, dword [ecx + 0x44]
mov ebx, dword [ecx + 0x48]
cmp eax, dword [ecx + 8]
ja 0x4a1970
cmp byte [ecx + 0x35], 0
je 0x4a1970
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x10]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a19aa
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 0x17], 1
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
jmp 0x4a199e
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x28]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a19aa
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 0x17], 1
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
add eax, edi
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, dword [esi + 8]
mov ecx, dword [esi + 0x20]
mov dword [ebx + 8], edi
cmp byte [ecx + 0x37], 2
je 0x4a1a70
mov eax, dword [esi + 0x20]
cmp byte [eax + 0x35], 0
je 0x4a1a70
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x18], eax
dec eax
cmp eax, dword [ecx + 8]
jae 0x4a1a70
mov eax, dword [esi + 0x20]
mov ebx, dword [eax + 0x48]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
xor eax, eax
mov edi, dword [ebx + 8]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x10], edx
mov dword [esi + 0x2c], ebx
jmp 0x4a1a32
mov eax, dword [ebx]
add eax, edi
push edx
push dword [esi + 0x1c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [esi + 8]
add edi, edx
mov dword [ebx + 8], edi
inc eax
cmp eax, dword [esi + 0x18]
je 0x4a1a70
mov ecx, dword [ebx + 4]
mov dword [esi + 8], eax
sub ecx, edi
cmp ecx, edx
jae 0x4a1a10
mov eax, edx
mov byte [esi + 0x17], 1
mov dword [esi + 0x150], 1
mov ecx, ebx
mov edx, edi
push eax
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 0x10]
mov edi, dword [ebx + 8]
jmp 0x4a1a10
mov edi, dword [esi + 0x20]
cmp dword [edi], 0
je 0x4a1a91
mov eax, dword [edi + 4]
test eax, eax
je 0x4a2746
dec eax
mov dword [edi + 4], eax
mov dword [esi + 0x150], 1
mov byte [esi + 0x17], 1
mov dword [esi + 0x150], 1
lea ecx, [esi + 0x30]
mov edx, edi
push 0x11
push 0x73f3fa
call fcn.004a0df0
add esp, 8
mov eax, dword [esi + 0x30]
cmp eax, 0x2c
jne 0x4a2593
movzx edx, byte [esi + 0x38]
mov ecx, dword [esi + 0x34]
movzx eax, byte [esi + 0x3b]
movzx edi, word [esi + 0x39]
test dl, dl
mov dword [esi + 0x110], eax
mov dword [esi + 0x64], edi
mov byte [esi + 0x27], dl
mov dword [esi + 0x1c], ecx
je 0x4a1b70
mov ecx, dword [ecx + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1b11
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov byte [eax + edx], 0x2c
inc dword [ecx + 8]
mov ecx, dword [esi + 0x1c]
cmp byte [ecx + 0x37], 2
je 0x4a1b74
mov eax, dword [ecx + 0x44]
mov ebx, dword [ecx + 0x48]
cmp eax, dword [ecx + 8]
jbe 0x4a1b7f
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x28]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a1bc3
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
jmp 0x4a1bb7
mov byte [esi + 0x27], 1
cmp byte [ecx + 0x37], 2
jne 0x4a1be5
jmp 0x4a1c80
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x10]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a1bc3
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
add eax, edi
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, dword [esi + 8]
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 8], edi
cmp byte [ecx + 0x37], 2
je 0x4a1c80
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x2c], eax
dec eax
cmp eax, dword [ecx + 8]
jae 0x4a1c80
mov eax, dword [esi + 0x1c]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov dword [esi + 0x60], ecx
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x10], edx
mov edi, dword [ecx + 8]
mov dword [esi + 0x18], ecx
jmp 0x4a1c48
mov ebx, dword [esi + 8]
mov eax, dword [ecx]
inc ebx
add eax, edi
push edx
push dword [esi + 0x60]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
add esp, 0xc
add edi, edx
cmp ebx, dword [esi + 0x2c]
mov dword [esi + 8], ebx
mov dword [ecx + 8], edi
je 0x4a1c80
mov eax, dword [ecx + 4]
sub eax, edi
cmp eax, edx
jae 0x4a1c20
mov eax, edx
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov edx, edi
push eax
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov edi, dword [ecx + 8]
jmp 0x4a1c20
mov eax, dword [esi + 0x1c]
lea ecx, [esi + 0x30]
mov edx, dword [eax + 0x48]
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
push 7
push str.type_id
call fcn.0044dca0
add esp, 8
mov eax, dword [esi + 0x30]
cmp eax, 0x2c
jne 0x4a250d
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1cd7
mov byte [esi + 7], 1
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov byte [eax + edx], 0x3a
mov edx, dword [esi + 0x1c]
inc dword [ecx + 8]
cmp byte [edx + 0x37], 2
je 0x4a1d3c
mov ecx, dword [edx + 0x48]
mov ebx, dword [edx + 0x30]
mov edx, dword [edx + 0x28]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [esi + 8], ecx
sub eax, edi
cmp eax, ebx
jae 0x4a1d22
mov dword [esi + 0x18], edx
mov byte [esi + 7], 1
mov edx, edi
mov dword [esi + 0x10], ebx
push ebx
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov edi, dword [ecx + 8]
mov eax, dword [ecx]
add eax, edi
push ebx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x1c]
add edi, ebx
mov dword [eax + 8], edi
cmp dword [edx], 0
je 0x4a1d50
mov eax, dword [edx + 4]
test eax, eax
je 0x4a253f
dec eax
mov dword [edx + 4], eax
mov ecx, dword [esi + 0x5c]
mov edi, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov byte [esi + 7], 1
lea ecx, [esi + 0x30]
push edi
push eax
push 6
push str.TypeIdSerializedElementC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fimage_0.24.7._srcimageops_sample.rs
call fcn.004a0f50
add esp, 0x10
mov eax, dword [esi + 0x30]
cmp eax, 0x2c
jne 0x4a250d
mov edx, dword [esi + 0x1c]
cmp dword [edx], 0
je 0x4a1d94
mov eax, dword [edx + 4]
mov ecx, 0xffffffff
inc eax
cmove eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1db6
mov byte [esi + 7], 1
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov byte [eax + edx], 0x2c
inc dword [ecx + 8]
mov ecx, dword [esi + 0x1c]
cmp byte [ecx + 0x37], 2
je 0x4a1f00
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 0x44]
mov ebx, dword [ecx + 0x48]
cmp eax, dword [ecx + 8]
jbe 0x4a1e0a
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x28]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a1e44
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 7], 1
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
jmp 0x4a1e38
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x10]
sub eax, edi
mov dword [esi + 8], edx
cmp eax, edx
jae 0x4a1e44
mov eax, edx
mov dword [esi + 0x18], ecx
mov byte [esi + 7], 1
mov ecx, ebx
mov edx, edi
push eax
mov dword [esi + 0x10], ebx
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
add eax, edi
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, dword [esi + 8]
mov eax, dword [esi + 0x1c]
mov dword [ebx + 8], edi
cmp byte [eax + 0x37], 2
je 0x4a1f00
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x2c], eax
dec eax
cmp eax, dword [ecx + 8]
jae 0x4a1f00
mov eax, dword [esi + 0x1c]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov dword [esi + 0x60], ecx
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x10], edx
mov edi, dword [ecx + 8]
mov dword [esi + 0x18], ecx
jmp 0x4a1ed1
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov edi, dword [ecx + 8]
mov ebx, dword [esi + 8]
mov eax, dword [ecx]
inc ebx
add eax, edi
push edx
push dword [esi + 0x60]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
add esp, 0xc
add edi, edx
cmp ebx, dword [esi + 0x2c]
mov dword [esi + 8], ebx
mov dword [ecx + 8], edi
je 0x4a1f00
mov eax, dword [ecx + 4]
sub eax, edi
cmp eax, edx
jae 0x4a1ea9
mov eax, edx
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov edx, edi
push eax
call fcn.00720870
add esp, 4
jmp 0x4a1ea0
mov eax, dword [esi + 0x1c]
lea ecx, [esi + 0x30]
mov edx, dword [eax + 0x48]
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
push 3
push 0x73f3c0
call fcn.0044dca0
add esp, 8
mov eax, dword [esi + 0x30]
cmp eax, 0x2c
jne 0x4a250d
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x48]
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x4a1f57
mov byte [esi + 7], 1
mov dword [esi + 8], ecx
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov byte [eax + edx], 0x3a
mov edx, dword [esi + 0x1c]
inc dword [ecx + 8]
cmp byte [edx + 0x37], 2
je 0x4a1fbc
mov ecx, dword [edx + 0x48]
mov ebx, dword [edx + 0x30]
mov edx, dword [edx + 0x28]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [esi + 8], ecx
sub eax, edi
cmp eax, ebx
jae 0x4a1fa2
mov dword [esi + 0x18], edx
mov byte [esi + 7], 1
mov edx, edi
mov dword [esi + 0x10], ebx
push ebx
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov edi, dword [ecx + 8]
mov eax, dword [ecx]
add eax, edi
push ebx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x1c]
add edi, ebx
mov dword [eax + 8], edi
cmp dword [edx], 0
je 0x4a1fd0
mov eax, dword [edx + 4]
test eax, eax
je 0x4a253f
dec eax
mov dword [edx + 4], eax
mov ecx, dword [edx + 0x48]
mov eax, dword [esi + 0x5c]
mov edx, dword [ecx + 8]
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x18], ecx
cmp dword [ecx + 4], edx
mov dword [esi + 8], eax
jne 0x4a2004
mov dword [esi + 0x10], edi
mov byte [esi + 7], 1
push 1
call fcn.00720870
add esp, 4
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
add edi, 8
mov byte [eax + edx], 0x22
mov eax, dword [esi + 0x110]
inc dword [ecx + 8]
mov byte [esi + 0x30], 0x81
mov byte [esi + 0x3c], 0x81
mov dword [esi + 0x48], edi
mov dword [esi + 0x54], 0
shl eax, 0x10
add dword [esi + 0x64], eax
mov eax, dword [esi + 8]
add eax, edi
mov dword [esi + 8], eax
mov dword [esi + 0x4c], eax
mov al, 0x81
jmp 0x4a2060
mov eax, dword [ebx]
add eax, edi
push ecx
mov ebx, ecx
lea ecx, [esi + 0x54]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x18]
add edi, ebx
mov dword [eax + 8], edi
movzx eax, byte [esi + 0x30]
nop dword [eax]
cmp al, 0x81
lea edx, [esi + 0x30]
mov ecx, 0
cmove edx, ecx
je 0x4a2089
cmp byte [edx], 0x80
je 0x4a2214
movzx eax, byte [esi + 0x3a]
cmp al, byte [esi + 0x3b]
jb 0x4a2285
mov byte [esi + 0x30], 0x81
mov eax, dword [esi + 0x48]
lea ecx, [esi + 0x48]
test eax, eax
cmovne eax, ecx
je 0x4a21a0
mov ecx, dword [eax]
cmp ecx, dword [esi + 8]
je 0x4a21a0
lea edx, [ecx + 1]
mov dword [eax], edx
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x4a20e0
mov dword [esi + 0x150], 2
lea ecx, [esi + 0x114]
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
call fcn.0069ba80
jmp 0x4a2159
lea edi, [ecx + 2]
and edx, 0x1f
mov dword [eax], edi
movzx edi, byte [ecx + 1]
and edi, 0x3f
cmp bl, 0xdf
jbe 0x4a2138
mov dword [esi + 0x10], edi
lea edi, [ecx + 3]
shl dword [esi + 0x10], 6
mov dword [eax], edi
movzx edi, byte [ecx + 2]
and edi, 0x3f
add edi, dword [esi + 0x10]
cmp bl, 0xf0
jb 0x4a21c2
mov ebx, edi
lea edi, [ecx + 4]
and edx, 7
mov dword [eax], edi
shl ebx, 6
shl edx, 0x12
movzx eax, byte [ecx + 3]
and eax, 0x3f
or eax, ebx
or edx, eax
cmp edx, 0x110000
jne 0x4a2140
jmp 0x4a21a0
shl edx, 6
or edx, edi
nop dword [eax]
lea ecx, [esi + 0x114]
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
call fcn.0069ba80
movzx eax, byte [esi + 0x114]
lea ecx, [esi + 0x115]
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 7]
cmp al, 0x81
movsd qword [esi + 0x90], xmm0
mov dword [esi + 0x97], ecx
je 0x4a21a0
mov ecx, dword [esi + 0x97]
movsd xmm0, qword [esi + 0x90]
lea edx, [esi + 0x34]
mov dword [edx + 4], ecx
movsd qword [edx - 3], xmm0
mov byte [esi + 0x30], al
jmp 0x4a2060
cmp byte [esi + 0x3c], 0x81
mov ebx, dword [esi + 0x18]
lea edx, [esi + 0x3c]
mov eax, 0
cmove edx, eax
je 0x4a2320
cmp byte [edx], 0x80
jne 0x4a21e5
mov eax, dword [esi + 0x40]
jmp 0x4a221a
shl edx, 0xc
or edx, edi
lea ecx, [esi + 0x114]
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
call fcn.0069ba80
jmp 0x4a2159
movzx eax, byte [esi + 0x46]
cmp al, byte [esi + 0x47]
jae 0x4a2320
mov ah, al
movzx ecx, al
inc ah
cmp al, 0xa
mov byte [esi + 0x46], ah
jae 0x4a27b6
movzx eax, byte [edx + ecx]
cmp eax, 0x80
jae 0x4a2235
jmp 0x4a229e
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 0x18]
mov dword [edx + 4], 0
mov dword [edx], 0
mov dword [edx + 8], 0
cmp eax, 0x80
jb 0x4a229e
mov ecx, eax
cmp eax, 0x800
jae 0x4a2255
shr ecx, 6
and al, 0x3f
or cl, 0xc0
or al, 0x80
mov byte [esi + 0x54], cl
mov byte [esi + 0x55], al
mov ecx, 2
jmp 0x4a22a6
cmp eax, 0x10000
jae 0x4a22e4
shr ecx, 0xc
or cl, 0xe0
mov byte [esi + 0x54], cl
mov ecx, eax
and al, 0x3f
shr ecx, 6
or al, 0x80
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x55], cl
mov byte [esi + 0x56], al
mov ecx, 3
jmp 0x4a22a6
mov ah, al
movzx ecx, al
inc ah
cmp al, 0xa
mov byte [esi + 0x3a], ah
jae 0x4a27d8
movzx eax, byte [edx + ecx]
mov ebx, dword [esi + 0x18]
mov byte [esi + 0x54], al
mov ecx, 1
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
sub eax, edi
cmp eax, ecx
jae 0x4a203d
mov eax, ecx
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov ecx, ebx
mov edx, edi
mov dword [esi + 0x10], eax
push eax
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edi, dword [ebx + 8]
jmp 0x4a203d
shr ecx, 0x12
or cl, 0xf0
mov byte [esi + 0x54], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x55], cl
mov ecx, eax
and al, 0x3f
shr ecx, 6
or al, 0x80
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x56], cl
mov ecx, 4
mov byte [esi + 0x57], al
jmp 0x4a22a6
mov edx, dword [ebx + 8]
cmp dword [ebx + 4], edx
jne 0x4a2348
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov ecx, ebx
push 1
call fcn.00720870
add esp, 4
mov ebx, dword [esi + 0x18]
mov edx, dword [ebx + 8]
mov eax, dword [ebx]
mov byte [eax + edx], 0x22
mov edx, dword [esi + 0x1c]
inc dword [ebx + 8]
cmp dword [edx], 0
je 0x4a2372
mov eax, dword [edx + 4]
mov ecx, 0xffffffff
inc eax
cmove eax, ecx
mov dword [edx + 4], eax
mov dword [esi + 0x150], 2
movzx eax, byte [esi + 0x27]
mov dword [esi + 0x30], edx
lea ecx, [esi + 0xa0]
lea edx, [esi + 0x30]
mov byte [esi + 7], 0
mov dword [esi + 0x150], 2
mov byte [esi + 0x34], al
mov eax, dword [esi + 0x64]
mov word [esi + 0x35], ax
shr eax, 0x10
mov byte [esi + 0x37], al
call fcn.004a0bc0
mov eax, dword [esi + 0xa0]
mov edi, dword [esi + 0x20]
cmp eax, 0x2c
jne 0x4a25d4
cmp dword [edi], 0
je 0x4a23cb
mov eax, dword [edi + 4]
mov ecx, 0xffffffff
inc eax
cmove eax, ecx
mov dword [edi + 4], eax
mov eax, dword [esi + 0x8c]
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x30]
mov dword [esi + 0x30], edi
mov byte [esi + 0x34], 1
mov byte [esi + 0x37], 0
mov byte [esi + 0x17], 0
mov dword [esi + 0x150], 1
mov word [esi + 0x35], ax
call fcn.004a28b0
mov eax, dword [esi + 0xc4]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
cmp eax, 0x2c
jne 0x4a266f
cmp dword [edi], 0
je 0x4a2425
mov eax, dword [edi + 4]
mov ecx, 0xffffffff
inc eax
cmove eax, ecx
mov dword [edi + 4], eax
mov eax, dword [esi + 0x5c]
add eax, 0x18
cmp eax, dword [esi + 0x10c]
mov dword [esi + 0x5c], eax
jne 0x4a1354
jmp 0x4a24e9
lea edi, [esi + 0x69]
lea edx, [esi + 0xa1]
mov byte [esi + 0xf], 1
mov ecx, dword [edi + 3]
mov dword [edx + 3], ecx
mov ecx, dword [edi]
mov dword [edx], ecx
lea ecx, [esi + 0x30]
lea edx, [esi + 0xa0]
mov byte [esi + 0xa0], al
call fcn.006924f0
lea ecx, [esi + 0x34]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
movsd xmm2, qword [ecx + 0x10]
cmp eax, 0x2c
movsd qword [esi + 0x128], xmm1
movsd xmm1, qword [ecx + 0x18]
movsd qword [esi + 0x120], xmm0
movsd qword [esi + 0x130], xmm2
movsd qword [esi + 0x138], xmm1
je 0x4a2425
jmp 0x4a26af
movsd xmm1, qword [esi + 0x40]
mov eax, dword [esi + 0x50]
movsd xmm0, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x30]
movsd qword [edi + 0x10], xmm1
movsd xmm1, qword [esi + 0x38]
mov dword [edi + 0x20], eax
movsd qword [edi + 0x18], xmm0
movsd qword [edi], xmm2
movsd qword [edi + 8], xmm1
jmp 0x4a26fc
movzx eax, byte [esi + 0x26]
mov ecx, edx
mov byte [esi + 0xf], 0
mov dword [esi + 0x150], 0
mov edx, edi
push eax
call fcn.004a0130
add esp, 4
jmp 0x4a26fc
lea ecx, [esi + 0x34]
mov edx, dword [esi + 0x1c]
movsd xmm1, qword [ecx + 0x10]
movsd xmm0, qword [ecx + 0x18]
movsd xmm2, qword [ecx]
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 0x80], xmm0
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
jmp 0x4a2544
mov eax, 0x2b
movsd xmm1, qword [esi + 0x78]
lea ecx, [esi + 0xa1]
movsd xmm0, qword [esi + 0x80]
movsd xmm2, qword [esi + 0x68]
movsd qword [ecx + 0x13], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [ecx + 0x1b], xmm0
movsd qword [ecx + 3], xmm2
movsd qword [ecx + 0xb], xmm1
mov dword [esi + 0xa0], eax
cmp dword [edx], 0
je 0x4a25d1
mov ecx, dword [edx + 4]
mov edi, edx
mov edx, 0xffffffff
inc ecx
cmovne edx, ecx
mov dword [edi + 4], edx
jmp 0x4a25d1
lea edi, [esi + 0x3c]
lea edx, [esi + 0xa1]
mov ecx, dword [esi + 0x38]
movsd xmm0, qword [edi + 0x10]
movsd xmm2, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [edx + 0x1b], xmm0
movsd qword [edx + 0x13], xmm1
movsd qword [edx + 0xb], xmm2
mov edx, dword [esi + 0x34]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xa4], edx
mov edi, dword [esi + 0x20]
lea ecx, [esi + 0xa1]
movsd xmm1, qword [ecx + 0x13]
movsd xmm0, qword [ecx + 0x1b]
movsd xmm2, qword [ecx + 3]
movsd qword [esi + 0xf8], xmm1
movsd xmm1, qword [ecx + 0xb]
movsd qword [esi + 0x100], xmm0
movsd qword [esi + 0xe8], xmm2
movsd qword [esi + 0xf0], xmm1
movsd xmm0, qword [esi + 0x100]
movsd xmm1, qword [esi + 0xf0]
movsd qword [esi + 0xe0], xmm0
movsd xmm0, qword [esi + 0xf8]
movsd qword [esi + 0xd8], xmm0
movsd xmm0, qword [esi + 0xe8]
movsd qword [esi + 0xd0], xmm1
movsd qword [esi + 0xc8], xmm0
mov edx, dword [esi + 0x28]
cmp dword [edi], 0
je 0x4a266f
mov ecx, dword [edi + 4]
mov ebx, dword [esi + 0x20]
mov edi, edx
mov edx, 0xffffffff
inc ecx
cmovne edx, ecx
mov dword [ebx + 4], edx
mov edx, edi
mov edi, dword [esi + 0x20]
movsd xmm1, qword [esi + 0xd8]
movsd xmm0, qword [esi + 0xe0]
movsd xmm2, qword [esi + 0xc8]
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0xd0]
movsd qword [esi + 0x138], xmm0
movsd qword [esi + 0x120], xmm2
movsd qword [esi + 0x128], xmm1
movsd xmm1, qword [esi + 0x130]
cmp dword [edi], 0
movsd xmm0, qword [esi + 0x138]
movsd xmm2, qword [esi + 0x120]
movsd qword [edx + 0x14], xmm1
movsd xmm1, qword [esi + 0x128]
movsd qword [edx + 0x1c], xmm0
movsd qword [edx + 4], xmm2
movsd qword [edx + 0xc], xmm1
mov dword [edx], eax
je 0x4a26fc
mov edi, dword [esi + 0x20]
mov eax, dword [edi + 4]
inc eax
mov ecx, 0xffffffff
cmovne ecx, eax
mov dword [edi + 4], ecx
mov eax, dword [esi + 0x148]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov dword [edx], 0x2b
jmp 0x4a26f0
mov eax, dword [esi + 0x8c]
mov byte [esi + 0xcc], 0
mov byte [esi + 0xcf], 0
mov word [esi + 0xcd], ax
mov eax, 0x2b
jmp 0x4a266f
mov eax, 0x2b
jmp 0x4a278a
mov eax, 0x2b
jmp 0x4a260e
movsd xmm1, qword [esi + 0xb0]
movsd xmm0, qword [esi + 0xb8]
movsd xmm2, qword [esi + 0xa0]
mov edi, dword [esi + 0x20]
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0xa8]
movsd qword [esi + 0x80], xmm0
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
movsd xmm0, qword [esi + 0x80]
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0xe0], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [esi + 0xd8], xmm0
movsd xmm0, qword [esi + 0x68]
jmp 0x4a263e
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov edx, 0xa
push 0x8c7be8
call fcn.00709fa0
add esp, 4
jmp 0x4a2815
mov byte [esi + 7], 1
mov dword [esi + 0x150], 2
mov edx, 0xa
push 0x8c7be8
call fcn.00709fa0
add esp, 4
jmp 0x4a2815
mov byte [esi + 0xf], 1
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x742cb4
call fcn.0070a0f0
add esp, 4
ud2