Function at 0x49d182
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf80
mov esi, esp
mov dword [esi + 0xf68], ebp
lea eax, [esi + 0xf70]
mov dword [esi + 0x4c], ecx
mov edi, edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x49ef90
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov edx, dword [edx + 0x40]
mov ecx, dword [edi + 0x5c]
mov eax, edx
sub eax, ecx
jb 0x49e36c
cmp eax, dword [edi + 0x28]
mov dword [esi + 0xc], edi
mov dword [esi + 0x58], eax
jne 0x49d30b
cmp edx, ecx
jbe 0x49e31a
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x3c]
imul eax, ecx, 0x260
cmp dword [edx + eax], 3
je 0x49d30b
lea ebx, [esi + 0x170]
add edx, eax
mov ecx, ebx
mov dword [esi + 8], edx
call fcn.0049bd91
mov eax, dword [ebx]
xor eax, 3
or eax, dword [ebx + 4]
jne 0x49d22b
push 8
pop eax
xor ecx, ecx
mov dword [esi + 0x14], 0
jmp 0x49d2e1
call fcn.0049bb64
mov edi, eax
push 0x68
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0x3d0]
mov dword [esi + 4], edi
mov dword [eax], 4
mov dword [eax + 4], edi
mov dword [eax + 8], 1
xor eax, eax
inc eax
mov dword [esi], eax
push 0x68
pop eax
mov dword [esi + 0x14], eax
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0049bd91
mov eax, dword [esi + 0x170]
xor eax, 3
or eax, dword [esi + 0x174]
je 0x49d2c8
mov eax, dword [esi]
cmp eax, dword [esi + 0x3d0]
mov eax, dword [esi + 4]
jne 0x49d29b
lea ecx, [esi + 0x3d0]
call fcn.0049bb96
mov eax, dword [esi + 0x3d4]
mov edi, dword [esi + 0x14]
mov dword [esi + 4], eax
add eax, edi
push 0x68
lea ebx, [esi + 0x170]
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi]
add edi, 0x68
mov dword [esi + 0x14], edi
inc eax
mov dword [esi], eax
mov dword [esi + 0x3d8], eax
jmp 0x49d262
lea ecx, [esi + 0x170]
call fcn.0049bb87
mov eax, dword [esi + 0x3d0]
mov ecx, dword [esi]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
imul edi, ecx, 0x68
mov dword [esi + 4], eax
add edi, eax
mov ecx, ebx
call fcn.0049bb1e
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
mov dword [ebx], 3
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], edi
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x49d3ea
js 0x49e376
mov dword [esi], 0
xor ecx, ecx
mov edx, ebx
mov al, byte [0x50c430]
call fcn.00484920
test eax, eax
je 0x49e37b
mov ecx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
mov dword [esi + 0x10], ecx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, byte [0x50c430]
xor ecx, ecx
mov edx, ebx
call fcn.00484920
test eax, eax
je 0x49e385
mov edi, eax
push ebx
push dword [ebp + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esi + 0x170]
mov dword [esi + 0xf78], 5
mov edx, 0x4e0189
mov dword [ecx], ebx
mov dword [ecx + 4], edi
mov dword [ecx + 8], ebx
mov byte [ecx + 0xc], 0
push 1
call fcn.00481290
pop eax
mov eax, dword [esi + 0x170]
mov edx, dword [esi + 0x174]
mov edi, dword [esi + 0x178]
mov byte [esi + 0x23], 1
mov dword [esi + 0xf78], 1
lea ecx, [esi + 0x888]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
push edi
call fcn.0047a7f0
pop eax
mov eax, dword [esi + 0x888]
mov ebx, dword [esi + 0x88c]
mov ecx, dword [esi + 0x890]
cmp eax, 0x80000000
jne 0x49d400
mov dword [esi + 4], ecx
jmp 0x49d43d
mov dword [esi], 0
push 3
pop eax
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
xor ecx, ecx
jmp 0x49d485
lea edx, [esi + 0x170]
mov byte [esi + 0x23], 1
mov dword [edx], eax
mov dword [edx + 8], ecx
lea ecx, [esi + 0x630]
mov dword [edx + 4], ebx
call fcn.00480a40
mov eax, dword [esi + 0x630]
mov ebx, dword [esi + 0x634]
cmp eax, 0x80000000
jne 0x49d72d
mov eax, dword [esi + 0x638]
mov dword [esi + 4], eax
mov edi, ebx
mov cl, 1
shr edi, 8
push 2
pop eax
mov edx, ebx
mov dword [esi + 8], eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x30]
test eax, eax
je 0x49d465
mov ebx, ecx
mov ecx, dword [esi + 0x34]
xor edx, edx
inc edx
call fcn.0040a630
mov ecx, ebx
test cl, cl
je 0x49d476
mov ebx, dword [esi + 0x10]
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0040a630
xor ecx, ecx
dec ecx
cmp dword [esi + 8], 2
jne 0x49d4e5
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp + 8]
shl edi, 8
movzx ebx, cl
or ebx, edi
lea edi, [esi + 0x17c]
mov ecx, edi
mov dword [esi + 8], eax
push dword [ebp + 0xc]
call fcn.00483e60
mov edx, dword [esi + 8]
add esp, 4
mov eax, dword [esi + 4]
mov dword [edi - 4], eax
mov dword [edi + 0x18], edx
movsd xmm1, qword [edi + 0xc]
movsd xmm0, qword [edi + 4]
movsd xmm2, qword [edi - 4]
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [edi + 0x14]
movsd qword [esi + 0x70], xmm0
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x80], xmm1
push 2
pop eax
jmp 0x49d560
lea eax, [esi + 0x3d0]
push 0x248
push eax
lea eax, [esi + 0x170]
push eax
mov dword [esi + 0x14], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [esi + 0x1c]
shl edi, 8
lea ecx, [esi + 0xd40]
or eax, edi
mov dword [esi], eax
lea eax, [esi + 0x190]
movsd xmm1, qword [eax - 0x18]
movsd xmm0, qword [eax - 0x20]
movsd xmm2, qword [eax - 0x10]
movsd qword [esi + 0x70], xmm1
movsd xmm1, qword [eax - 8]
movsd qword [esi + 0x68], xmm0
movsd qword [esi + 0x78], xmm2
movsd qword [esi + 0x80], xmm1
push 0x228
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 8]
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 4]
mov edx, dword [ecx + 0x60]
lea edi, [esi + 0x8b4]
movsd xmm1, qword [esi + 0x70]
movsd xmm0, qword [esi + 0x68]
movsd xmm2, qword [esi + 0x78]
mov dword [edi + 0x230], edx
mov dword [edi - 0x2c], eax
mov eax, dword [esi]
mov dword [edi - 0x24], ebx
mov dword [edi - 0x28], eax
movsd qword [edi - 0x18], xmm1
movsd xmm1, qword [esi + 0x80]
movsd qword [edi - 0x20], xmm0
movsd qword [edi - 0x10], xmm2
lea eax, [esi + 0xd40]
movsd qword [edi - 8], xmm1
push 0x228
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x228], eax
mov dword [edi + 0x22c], ecx
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x20], 0
je 0x49d8ec
lea eax, [ecx + 0x20]
lea edi, [esi + 0x3d0]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x888]
push 0x260
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi]
cmp eax, 3
jne 0x49d657
mov ebx, dword [esi + 0x3d8]
cmp ebx, dword [esi + 0x3e0]
je 0x49d8a7
lea eax, [ebx + 0x68]
lea ecx, [esi + 0xa0]
mov dword [esi + 0x3d8], eax
mov eax, dword [ebx + 4]
mov edi, dword [ebx]
mov dword [esi], eax
mov eax, dword [ebx + 8]
mov dword [esi + 4], eax
lea eax, [ebx + 0xc]
push 0x24
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, 0x30
lea eax, [esi + 0x108]
push 0x38
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ebx, dword [esi]
add esp, 0xc
jmp 0x49d89a
cmp eax, 2
jne 0x49d69a
mov eax, dword [esi + 0x3d4]
mov dword [esi + 0x3d4], 2
cmp eax, 2
mov dword [esi + 4], eax
je 0x49d8a7
lea eax, [esi + 0x3d8]
lea ecx, [esi + 0xa0]
push 0x24
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
push 2
pop edi
jmp 0x49d98b
lea edx, [esi + 0x3d0]
lea ebx, [esi + 0x170]
mov edi, dword [edx + 0x25c]
mov ecx, ebx
call fcn.00480fb0
cmp dword [ebx], 0
je 0x49d7c7
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x178]
mov eax, dword [esi + 0x17c]
test edx, edx
je 0x49d83b
lea ebx, [esi + 0x63c]
mov dword [ebx - 0xc], edx
mov dword [ebx - 4], eax
mov dword [ebx - 8], ecx
lea eax, [esi + 0x180]
push 0x248
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
inc edi
lea eax, [esi + 0x630]
lea ebx, [esi + 0xae8]
mov edx, edi
mov edi, eax
mov ecx, ebx
push eax
call fcn.0049b884
pop eax
mov ecx, edi
call fcn.0049bb11
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edi, dword [ebx]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x49d868
mov dword [esi + 0x24], eax
push 0x250
push 0
lea eax, [esi + 0x170]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esi + 0x170]
push eax
mov dword [esi + 0x18], ebx
push ebx
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esi + 0x10]
cmp eax, 0xffffffff
mov dword [esi + 0x14], eax
je 0x49d7d1
mov al, byte [0x50c430]
push 0x18
pop edx
xor ecx, ecx
call fcn.00484920
test eax, eax
je 0x49e3ba
xor ecx, ecx
mov dword [esi + 0x28], eax
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edi
mov byte [eax + 0x14], 0
lea eax, [esi + 0x178]
mov dword [esi + 8], ecx
mov edi, dword [eax - 8]
mov ecx, dword [eax - 4]
mov dword [esi + 0x1c], edi
shrd edi, ecx, 8
mov dword [esi + 4], ecx
lea ecx, [esi + 0x3d0]
push 0x248
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x49e2c9
xor ebx, ebx
push 3
pop edi
jmp 0x49d89a
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
mov dword [esi + 4], eax
jne 0x49e2bc
mov al, byte [0x50c430]
mov dword [esi + 8], 0
push 0x18
pop edx
xor ecx, ecx
call fcn.00484920
test eax, eax
je 0x49e3d1
xor ecx, ecx
mov dword [esi + 0x28], eax
inc ecx
cmp dword [esi + 0x24], 0
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edi
mov byte [eax + 0x14], 0
je 0x49d831
push 2
pop edx
mov ecx, dword [esi + 0x18]
call fcn.0040a630
mov dword [esi + 8], 0
xor ecx, ecx
mov dword [esi + 0x1c], eax
jmp 0x49d44f
inc edi
mov dword [esi + 0xaf4], ecx
mov dword [esi + 0xaf8], eax
mov dword [esi + 0xafc], 0x80000000
mov dword [esi + 4], 0
mov dword [esi + 0xb14], edi
push 2
pop edi
mov dword [esi], 0
lea eax, [esi + 0xaf4]
lea ecx, [esi + 0xa0]
push 0x24
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0xb18]
lea ecx, [esi + 0x108]
push 0x38
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esi]
mov eax, edi
xor eax, 3
or eax, ebx
jne 0x49d98b
push 8
pop ebx
lea edi, [esi + 0x3d0]
mov ecx, edi
call fcn.0049bb1e
lea eax, [esi + 0x50]
mov edx, ebx
xor ebx, ebx
mov dword [edi], eax
xor eax, eax
mov ecx, dword [esi + 0xc]
imul eax, eax, 0x68
mov dword [esi + 0x888], 3
mov dword [esi + 0x88c], edx
mov dword [esi + 0x890], edx
mov dword [esi + 0x894], ebx
add eax, edx
mov dword [esi + 0x898], eax
cmp byte [ecx + 0x34], 0
je 0x49dca8
mov edx, dword [ebp + 8]
lea edi, [esi + 0x170]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.0049bec2
pop eax
cmp byte [edi], 4
jne 0x49d917
mov ebx, dword [esi + 0x174]
jmp 0x49d928
mov edx, dword [esi + 0x170]
mov ebx, dword [esi + 0x174]
cmp dl, 4
jne 0x49d95f
lea edi, [esi + 0x170]
lea edx, [esi + 0x630]
mov ecx, edi
mov dword [edx], ebx
call fcn.004761c6
cmp dword [edi], 0
je 0x49dbcb
mov eax, dword [esi + 0x178]
mov edi, dword [esi + 0x174]
mov dword [esi], eax
push ebx
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ebx, dword [esi]
mov edx, edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x4c]
mov eax, dword [eax + 0x60]
and dword [ecx], 0
mov dword [ecx + 8], ebx
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], 0x80000000
mov dword [ecx + 0x24], eax
lea ecx, [esi + 0x888]
call fcn.0049bb1e
jmp 0x49dd04
push 0x68
pop eax
mov dword [esi], eax
call fcn.0049bb64
mov ecx, edi
mov edi, eax
mov dword [eax + 4], ebx
mov dword [eax], ecx
mov eax, dword [esi + 4]
lea ecx, [esi + 0xa0]
mov dword [edi + 8], eax
lea eax, [edi + 0xc]
push 0x24
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ebx, [esi + 0x108]
lea eax, [edi + 0x30]
push 0x38
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x170]
mov dword [esi + 0x2c], edi
mov dword [eax], 4
mov dword [eax + 4], edi
mov dword [eax + 8], 1
push 0x260
lea eax, [esi + 0x3d0]
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ecx, ecx
inc ecx
mov eax, dword [esi + 0x170]
mov dword [esi + 0x18], ecx
cmp eax, 3
jne 0x49da33
mov eax, dword [esi + 0x178]
cmp eax, dword [esi + 0x180]
je 0x49dd18
lea ecx, [eax + 0x68]
mov dword [esi + 0x178], ecx
push 0x68
push eax
jmp 0x49db5d
cmp eax, 2
jne 0x49da5a
mov eax, dword [esi + 0x174]
xor edi, edi
mov dword [esi + 0x174], 2
cmp eax, 2
jne 0x49dae0
push 3
jmp 0x49db00
mov edi, dword [esi + 0x3cc]
lea ecx, [esi + 0x630]
lea edx, [esi + 0x170]
call fcn.00480fb0
cmp dword [esi + 0x630], 0
je 0x49db12
mov edx, dword [esi + 0x634]
mov ecx, dword [esi + 0x638]
mov eax, dword [esi + 0x63c]
test edx, edx
je 0x49db25
mov dword [esi + 0xae8], edx
mov dword [esi + 0xaec], ecx
mov dword [esi + 0xaf0], eax
push 0x248
lea eax, [esi + 0x640]
push eax
lea eax, [esi + 0xaf4]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
inc edi
mov ecx, ebx
mov edx, edi
lea edi, [esi + 0xae8]
push edi
call fcn.0049b884
pop eax
mov ecx, edi
call fcn.0049bb11
jmp 0x49db5a
mov dword [esi + 0xa8], eax
push 0x24
lea eax, [esi + 0x178]
push eax
lea eax, [esi + 0xac]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 2
pop eax
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edi
jmp 0x49db7b
and dword [esi + 0xa4], 0
mov dword [esi + 0xa0], 3
jmp 0x49db6c
inc edi
and dword [esi + 0x110], 0
mov dword [esi + 0x114], ecx
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], 0x80000000
mov dword [esi + 0x134], edi
and dword [esi + 0x10c], 0
mov dword [esi + 0x108], 2
push 0x68
push ebx
lea eax, [esi + 0xa0]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xa0]
mov edi, dword [esi + 0xa4]
mov ecx, dword [esi + 0x2c]
xor eax, 3
or eax, edi
mov edi, dword [esi + 0x18]
je 0x49dd2b
cmp edi, dword [esi + 0x5c]
mov ebx, edi
jne 0x49db9b
lea ecx, [esi + 0x5c]
call fcn.0049bb96
mov ecx, dword [esi + 0x60]
mov edi, dword [esi]
mov dword [esi + 0x2c], ecx
lea eax, [ecx + edi]
push 0x68
lea ecx, [esi + 0xa0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, ebx
add edi, 0x68
lea ebx, [esi + 0x108]
inc ecx
mov dword [esi], edi
mov dword [esi + 0x64], ecx
jmp 0x49da02
mov edx, dword [esi + 0x1a4]
lea edi, [esi + 0x3f0]
mov eax, dword [esi + 0x1a0]
mov ecx, dword [esi + 0x190]
mov dword [edi - 0x10], edx
mov edx, dword [ebp + 8]
mov dword [edi - 0xc], eax
mov dword [esi], ecx
mov dword [edi - 4], ebx
mov dword [edi - 8], 2
mov ecx, edi
push dword [ebp + 0xc]
call fcn.00483e60
pop eax
mov edx, dword [edi + 8]
mov ecx, dword [esi + 0xc]
movsd xmm0, qword [edi - 8]
mov eax, dword [edi - 0xc]
mov ebx, dword [edi - 0x10]
mov dword [esi + 0x98], edx
mov edx, dword [ecx + 0x4c]
movsd qword [esi + 0x88], xmm0
movsd xmm0, qword [edi]
mov edi, dword [edi + 0xc]
mov dword [esi + 4], eax
cmp edx, dword [ecx + 0x44]
movsd qword [esi + 0x90], xmm0
jne 0x49dc4d
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x44]
call fcn.0049c247
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x4c]
mov ecx, dword [esi + 0xc]
imul eax, edx, 0x30
mov edx, dword [esi]
mov ecx, dword [ecx + 0x48]
and dword [ecx + eax + 4], 0
mov dword [ecx + eax], 1
mov dword [ecx + eax + 8], edx
mov edx, dword [esi + 4]
mov dword [ecx + eax + 0x10], ebx
and dword [ecx + eax + 0xc], 0
mov dword [ecx + eax + 0x14], edx
movsd xmm0, qword [esi + 0x88]
movsd xmm1, qword [esi + 0x90]
movsd qword [ecx + eax + 0x18], xmm0
movsd qword [ecx + eax + 0x20], xmm1
mov edx, dword [esi + 0x98]
mov dword [ecx + eax + 0x28], edx
mov dword [ecx + eax + 0x2c], edi
mov ecx, dword [esi + 0xc]
inc dword [ecx + 0x4c]
mov edx, dword [ecx + 0x40]
cmp edx, dword [ecx + 0x38]
jne 0x49dcc1
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x38]
call fcn.0049c131
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x40]
imul eax, edx, 0x260
lea edx, [esi + 0x888]
add eax, dword [ecx + 0x3c]
mov ecx, 0x260
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0xc]
add esp, 0xc
mov eax, dword [esi + 0x58]
inc dword [ecx + 0x40]
cmp eax, dword [ecx + 0x28]
jne 0x49dcfb
mov eax, dword [ecx + 0x5c]
inc eax
je 0x49e39c
mov dword [ecx + 0x5c], eax
mov eax, dword [esi + 0x4c]
mov dword [eax], 2
mov eax, dword [esi + 0xf70]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
and dword [esi + 0xa4], 0
mov edi, ecx
mov dword [esi + 0xa0], 3
lea ecx, [esi + 0xa0]
call fcn.0049bb87
lea ecx, [esi + 0x170]
call fcn.0049bb1e
mov ebx, dword [esi + 0x5c]
lea eax, [esi + 0x50]
cmp edi, 0x15
mov dword [esi + 0x3d0], eax
jae 0x49dd7e
cmp edi, 1
jbe 0x49e2af
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x18]
lea eax, [esi + 0x3d0]
mov ecx, edi
push eax
push 1
call fcn.0049bfe4
mov eax, dword [esi + 0x18]
mov edx, edi
add esp, 8
jmp 0x49d8c2
mov eax, edi
mov dword [esi + 0x54], ebx
xor ecx, ecx
shr eax, 1
imul edx, eax, 0x68
mov al, byte [0x50c430]
call fcn.00484920
test eax, eax
mov dword [esi + 8], eax
je 0x49e3a6
mov ebx, edi
push 0x10
pop ecx
mov dword [esi + 0x3c], ecx
call fcn.0042d3be
test eax, eax
je 0x49e3b0
mov ecx, dword [esi + 0x2c]
mov edi, eax
xor edx, edx
add ecx, 0x68
mov dword [esi + 0x48], ecx
xor ecx, ecx
mov eax, ebx
sub eax, ecx
jbe 0x49e28a
cmp eax, 2
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], edi
jb 0x49df6a
mov eax, dword [esi + 0x2c]
mov edi, ebx
imul ebx, ecx, 0x68
lea ecx, [esi + 0x3d0]
add eax, ebx
lea edx, [eax + 0x68]
push eax
call fcn.0049c0ee
pop ecx
test al, al
je 0x49de2c
add ebx, dword [esi + 0x48]
push 2
pop eax
mov ecx, ebx
mov ebx, eax
mov eax, ecx
cmp dword [esi + 0x10], ebx
je 0x49de65
lea edi, [eax + 0x68]
lea ecx, [esi + 0x3d0]
mov edx, edi
push eax
call fcn.0049c0ee
pop ecx
test al, al
je 0x49de74
inc ebx
mov eax, edi
jmp 0x49de0c
add ebx, dword [esi + 0x48]
push 2
pop eax
mov edx, dword [esi + 0x1c]
mov ecx, ebx
mov ebx, eax
mov eax, ecx
cmp dword [esi + 0x10], ebx
je 0x49de6a
lea edi, [eax + 0x68]
lea ecx, [esi + 0x3d0]
mov edx, edi
push eax
call fcn.0049c0ee
pop ecx
test al, al
jne 0x49df5e
mov eax, edi
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
inc ebx
jmp 0x49de3b
mov eax, dword [esi + 0x10]
jmp 0x49de76
mov ecx, dword [esi + 0x24]
mov ebx, edi
jmp 0x49df6a
mov eax, ebx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x10], eax
lea edx, [eax + ecx]
mov dword [esi + 0x38], edx
push 0x507e88
push dword [esi + 0x18]
push dword [esi + 0x2c]
call fcn.0049bfb4
add esp, 0xc
mov ebx, edx
imul ecx, edx, 0x68
shr ebx, 1
add ecx, eax
mov edx, ebx
neg edx
imul edi, edx, 0x68
mov edx, ebx
add edi, ecx
xor ecx, ecx
push 0x507df8
push ebx
push eax
call fcn.0049bfb4
add esp, 0xc
mov dword [esi + 0x44], edx
mov dword [esi], eax
xor ecx, ecx
mov edx, ebx
push 0x507e08
push ebx
push edi
mov edi, ebx
call fcn.0049bfb4
add esp, 0xc
imul ecx, ebx, 0x68
dec edi
mov dword [esi + 0x34], edx
lea eax, [eax + ecx - 0x68]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x1c]
cmp edi, 0xffffffff
je 0x49df53
sub eax, 1
jb 0x49e2fc
cmp edi, dword [esi + 0x34]
jae 0x49e30b
mov dword [esi + 0x14], edi
push 0x68
pop ebx
push ebx
mov edi, dword [esi]
push edi
mov dword [esi + 0x30], eax
lea eax, [esi + 0x170]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push ebx
mov ebx, dword [esi + 4]
push ebx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
push 0x68
pop eax
push eax
lea eax, [esi + 0x170]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x30]
add esp, 0xc
push 0x68
pop ecx
add edi, ecx
add ebx, 0xffffff98
mov dword [esi], edi
mov edi, dword [esi + 0x14]
mov dword [esi + 4], ebx
dec edi
jmp 0x49dee5
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x24]
jmp 0x49df6f
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
add eax, ecx
cmp eax, ecx
jb 0x49e350
cmp eax, ebx
ja 0x49e350
jae 0x49dfca
mov ebx, dword [esi + 0x10]
cmp ebx, 9
ja 0x49dfca
mov eax, dword [esi + 0x18]
lea edi, [ecx + 0xa]
mov ecx, dword [esi + 0x24]
cmp edi, eax
cmovae edi, eax
cmp ebx, 1
mov edx, edi
adc ebx, 0
push 0x507f54
push eax
push dword [esi + 0x2c]
call fcn.0049bfb4
add esp, 0xc
mov ecx, eax
lea eax, [esi + 0x3d0]
push eax
push ebx
call fcn.0049bfe4
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x1c]
mov eax, edi
add esp, 8
mov edi, dword [esi + 0x3c]
mov dword [esi + 0x38], eax
cmp edx, edi
jne 0x49e014
lea ecx, [edi + edi]
mov dword [esi + 0x40], ecx
call fcn.0042d3be
test eax, eax
je 0x49e362
mov ecx, edi
mov edi, eax
shl ecx, 3
push ecx
mov ebx, dword [esi + 0x28]
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.0040a630
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x24]
jmp 0x49e01d
mov dword [esi + 0x40], edi
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x28]
sub eax, ecx
mov dword [esi + 0x28], edi
mov dword [edi + edx*8], eax
mov dword [edi + edx*8 + 4], ecx
inc edx
cmp edx, 2
jb 0x49e26b
mov edi, dword [esi + 0x28]
mov eax, dword [edi + edx*8 - 8]
mov ecx, dword [edi + edx*8 - 4]
add ecx, eax
cmp ecx, ebx
je 0x49e088
mov ecx, dword [edi + edx*8 - 0x10]
cmp ecx, eax
jbe 0x49e088
cmp edx, 2
jbe 0x49e27c
mov ebx, edi
lea edi, [edx - 3]
mov ebx, dword [ebx + edx*8 - 0x18]
mov dword [esi + 0x10], edi
lea edi, [ecx + eax]
cmp ebx, edi
mov dword [esi], ebx
jbe 0x49e099
mov ebx, dword [esi + 0x18]
cmp edx, 3
jbe 0x49e26b
add ecx, dword [esi]
mov edi, dword [esi + 0x28]
cmp dword [edi + edx*8 - 0x20], ecx
mov ecx, dword [esi]
jbe 0x49e09e
jmp 0x49e27c
cmp edx, 3
jb 0x49e0a5
lea ecx, [edx - 3]
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + edx*8 - 0x18]
jmp 0x49e09e
mov edi, dword [esi + 0x28]
mov ecx, dword [esi]
cmp ecx, eax
mov eax, dword [esi + 0x10]
jb 0x49e0a8
lea eax, [edx - 2]
mov ecx, edi
mov edi, edx
push 0x507e98
push eax
mov ebx, eax
call fcn.0042c989
pop ecx
pop edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x34], eax
lea eax, [ebx + 1]
push 0x507ea8
mov dword [esi + 0x3c], eax
push eax
call fcn.0042c989
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esi + 0x44], ecx
add edx, ecx
mov ecx, dword [esi + 0x34]
push 0x507eb8
push dword [esi + 0x18]
push dword [esi + 0x2c]
call fcn.0049bfb4
add esp, 0xc
mov ecx, dword [esi + 0x24]
imul edi, edx, 0x68
mov dword [esi + 4], eax
mov dword [esi + 0x30], edi
imul ebx, ecx, 0x68
sub edx, ecx
cmp edx, ecx
mov ecx, ebx
lea ebx, [eax + ebx]
jae 0x49e19c
imul edi, edx, 0x68
push edi
push ebx
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 4]
add edi, dword [esi + 8]
lea eax, [ecx + eax - 0x68]
mov dword [esi], edi
mov dword [esi + 0x14], eax
cmp ebx, dword [esi + 4]
mov eax, ebx
jbe 0x49e20a
mov edi, dword [esi]
cmp edi, dword [esi + 8]
jbe 0x49e20a
mov ebx, eax
add eax, 0xffffff98
lea edx, [edi - 0x68]
lea ecx, [esi + 0x3d0]
push eax
call fcn.0049c0ee
pop ecx
movzx ecx, al
imul edx, ecx, 0x68
neg ecx
imul ecx, ecx, 0x68
lea edi, [edi + edx - 0x68]
add ebx, ecx
test al, al
mov eax, edi
mov dword [esi], edi
cmovne eax, ebx
push 0x68
push eax
mov edi, dword [esi + 0x14]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 0xffffff98
mov dword [esi + 0x14], edi
jmp 0x49e140
add dword [esi + 0x30], eax
mov edi, ebx
mov ebx, ecx
push ecx
push eax
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
add ebx, eax
mov dword [esi], ebx
mov ebx, eax
cmp ebx, dword [esi]
mov eax, ebx
jae 0x49e211
cmp edi, dword [esi + 0x30]
jae 0x49e211
lea ecx, [esi + 0x3d0]
mov edx, edi
mov dword [esi + 0x14], eax
push eax
call fcn.0049c0ee
pop ecx
mov ebx, eax
test al, al
mov eax, dword [esi + 0x14]
cmovne eax, edi
push 0x68
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, bl
xor bl, 1
add dword [esi + 4], 0x68
imul eax, eax, 0x68
add edi, eax
movzx eax, bl
mov ebx, dword [esi + 0x14]
imul eax, eax, 0x68
add ebx, eax
jmp 0x49e1b9
mov ecx, dword [esi + 8]
mov edi, eax
jmp 0x49e216
mov edi, dword [esi + 4]
mov ecx, eax
mov eax, dword [esi]
sub eax, ecx
push eax
push ecx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
cmp edx, dword [esi + 0x3c]
jbe 0x49e324
mov ebx, dword [esi + 0x44]
mov edi, dword [esi + 0x10]
add ebx, dword [esi + 0x24]
lea eax, [ecx + edi*8]
lea ecx, [ecx + edi*8 + 8]
not edi
add edi, edx
shl edi, 3
mov dword [eax + 8], ebx
mov ebx, dword [esi + 0x34]
mov dword [eax + 0xc], ebx
push edi
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esi + 0x1c]
add esp, 0xc
mov ebx, dword [esi + 0x18]
dec edx
jmp 0x49e02a
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov edi, dword [esi + 0x28]
mov dword [esi + 0x3c], eax
jmp 0x49ddc3
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
jmp 0x49ddc3
push 4
pop edx
mov ecx, edi
call fcn.0040a630
push 8
pop edx
mov ecx, dword [esi + 8]
call fcn.0040a630
mov eax, ebx
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 0x54]
jmp 0x49d8c5
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x2c]
mov eax, edi
jmp 0x49d8c5
push 2
pop eax
mov dword [esi + 8], eax
mov dword [esi + 0x1c], 0
cmp dword [esi + 0x24], 0
je 0x49e2da
push 2
pop edx
mov ecx, dword [esi + 0x18]
call fcn.0040a630
cmp dword [esi + 0x30], 0
je 0x49e2eb
mov ecx, dword [esi + 0x34]
xor edx, edx
inc edx
call fcn.0040a630
mov ecx, dword [esi + 0x14]
cmp ecx, 0xffffffff
jne 0x49d479
jmp 0x49d46c
mov ecx, dword [esi + 0x44]
mov edx, ecx
push 0x507e18
call fcn.004a0290
mov edx, dword [esi + 0x34]
mov ecx, edi
push 0x507e28
call fcn.004a0290
push 0x50807c
call fcn.004a0290
lea ecx, [esi + 0x170]
mov edx, 0x507ec8
mov dword [ecx], 0x507da0
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_aedd173a2c086e558c2b66d3743b344f977621a7librarycore_srccharmethods.rs8
and dword [ecx + 0xc], 0
call fcn.004a0200
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len8P
push 0x507f44
call fcn.004a0350
mov ecx, 0x507ef8
call fcn.004a0660
mov ecx, 0x50806c
call fcn.004a0660
call fcn.0040a720
xor ecx, ecx
mov edx, ebx
inc ecx
call fcn.0049ff70
and dword [esi + 0xf78], 0
xor ecx, ecx
mov edx, ebx
mov byte [esi + 0x22], 1
inc ecx
call fcn.0049ff70
jmp 0x49e3e6
mov ecx, 0x50808c
call fcn.004a0660
mov ecx, 0x507ed8
call fcn.004a0660
mov ecx, 0x507ee8
call fcn.004a0660
mov dword [esi + 0xf78], 4
push 4
pop ecx
push 0x18
pop edx
call fcn.0049ff70
jmp 0x49e3e6
mov dword [esi + 0xf78], 3
push 4
pop ecx
push 0x18
pop edx
call fcn.0049ff70
ud2