Function at 0x431bbe
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], 0x4334d0
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 0x432d9a
cmp eax, dword [edi + 0x28]
mov dword [esi + 0xc], edi
mov dword [esi + 0x58], eax
jne 0x431d47
cmp edx, ecx
jbe 0x432d48
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x3c]
imul eax, ecx, 0x260
cmp dword [edx + eax], 3
je 0x431d47
lea ebx, [esi + 0x170]
add edx, eax
mov ecx, ebx
mov dword [esi + 8], edx
call fcn.0042fc7f
mov eax, dword [ebx]
xor eax, 3
or eax, dword [ebx + 4]
jne 0x431c67
push 8
pop eax
xor ecx, ecx
mov dword [esi + 0x14], 0
jmp 0x431d1d
call fcn.0042fd90
mov edi, eax
push 0x68
push ebx
push eax
call fcn.00434160
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.0042fc7f
mov eax, dword [esi + 0x170]
xor eax, 3
or eax, dword [esi + 0x174]
je 0x431d04
mov eax, dword [esi]
cmp eax, dword [esi + 0x3d0]
mov eax, dword [esi + 4]
jne 0x431cd7
lea ecx, [esi + 0x3d0]
call fcn.0042fdc0
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 fcn.00434160
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 0x431c9e
lea ecx, [esi + 0x170]
call fcn.0042fdb1
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.004301d3
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 0x431e22
js 0x432da4
mov dword [esi], 0
mov ecx, ebx
mov al, byte [0x451ab8]
call fcn.0042cd80
test eax, eax
je 0x432da9
mov ecx, eax
push ebx
mov eax, dword [ebp + 8]
push eax
mov dword [esi + 0x10], ecx
push ecx
call fcn.00434160
add esp, 0xc
mov al, byte [0x451ab8]
mov ecx, ebx
call fcn.0042cd80
test eax, eax
je 0x432db3
mov edi, eax
push ebx
push dword [ebp + 8]
push eax
call fcn.00434160
add esp, 0xc
lea ecx, [esi + 0x170]
mov dword [esi + 0xf78], 5
mov edx, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov dword [ecx], ebx
mov dword [ecx + 4], edi
mov dword [ecx + 8], ebx
mov byte [ecx + 0xc], 0
push 1
call fcn.0041fbf0
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.00419860
pop eax
mov eax, dword [esi + 0x888]
mov ebx, dword [esi + 0x88c]
mov ecx, dword [esi + 0x890]
cmp eax, 0x80000000
jne 0x431e38
mov dword [esi + 4], ecx
jmp 0x431e78
mov dword [esi], 0
push 3
pop eax
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
xor ecx, ecx
jmp 0x431ec0
lea edx, [esi + 0x170]
mov byte [esi + 0x23], 1
mov dword [edx], eax
mov dword [edx + 8], ecx
mov dword [edx + 4], ebx
lea ecx, [esi + 0x630]
push 1
call fcn.0041f230
pop eax
mov eax, dword [esi + 0x630]
mov ebx, dword [esi + 0x634]
cmp eax, 0x80000000
jne 0x432168
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 0x431ea0
mov ebx, ecx
mov ecx, dword [esi + 0x34]
xor edx, edx
inc edx
call fcn.00403100
mov ecx, ebx
test cl, cl
je 0x431eb1
mov ebx, dword [esi + 0x10]
xor edx, edx
mov ecx, ebx
inc edx
call fcn.00403100
xor ecx, ecx
dec ecx
cmp dword [esi + 8], 2
jne 0x431f20
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.00422d90
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 0x431f9b
lea eax, [esi + 0x3d0]
push 0x248
push eax
lea eax, [esi + 0x170]
push eax
mov dword [esi + 0x14], ecx
call fcn.00434160
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 fcn.00434160
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 fcn.00434160
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 0x43231c
lea eax, [ecx + 0x20]
lea edi, [esi + 0x3d0]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x888]
push 0x260
push eax
push edi
call fcn.00434160
add esp, 0xc
mov eax, dword [edi]
cmp eax, 3
jne 0x432092
mov ebx, dword [esi + 0x3d8]
cmp ebx, dword [esi + 0x3e0]
je 0x4322d7
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 fcn.00434160
add esp, 0xc
add ebx, 0x30
lea eax, [esi + 0x108]
push 0x38
push ebx
push eax
call fcn.00434160
mov ebx, dword [esi]
add esp, 0xc
jmp 0x4322ca
cmp eax, 2
jne 0x4320d5
mov eax, dword [esi + 0x3d4]
mov dword [esi + 0x3d4], 2
cmp eax, 2
mov dword [esi + 4], eax
je 0x4322d7
lea eax, [esi + 0x3d8]
lea ecx, [esi + 0xa0]
push 0x24
push eax
push ecx
call fcn.00434160
add esp, 0xc
xor ebx, ebx
push 2
pop edi
jmp 0x4323bb
lea edx, [esi + 0x3d0]
lea ebx, [esi + 0x170]
mov edi, dword [edx + 0x25c]
mov ecx, ebx
call fcn.0041f910
cmp dword [ebx], 0
je 0x432200
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x178]
mov eax, dword [esi + 0x17c]
test edx, edx
je 0x43226b
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 fcn.00434160
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.0042fedd
pop eax
mov ecx, edi
call fcn.00430168
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edi, dword [ebx]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x432298
mov dword [esi + 0x24], eax
push 0x250
push 0
lea eax, [esi + 0x170]
push eax
call fcn.00435d50
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 0x43220a
mov al, byte [0x451ab8]
push 0x18
pop ecx
call fcn.0042cd80
test eax, eax
je 0x432de8
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 fcn.00434160
add esp, 0xc
jmp 0x432cf7
xor ebx, ebx
push 3
pop edi
jmp 0x4322ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
mov dword [esi + 4], eax
jne 0x432cea
mov al, byte [0x451ab8]
push 0x18
pop ecx
call fcn.0042cd80
test eax, eax
je 0x432dff
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 0x43225a
push 2
pop edx
mov ecx, dword [esi + 0x18]
call fcn.00403100
xor ecx, ecx
mov dword [esi + 8], 0
mov dword [esi + 0x1c], eax
jmp 0x431e8a
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 fcn.00434160
add esp, 0xc
lea eax, [esi + 0xb18]
lea ecx, [esi + 0x108]
push 0x38
push eax
push ecx
call fcn.00434160
add esp, 0xc
mov ebx, dword [esi]
mov eax, edi
xor eax, 3
or eax, ebx
jne 0x4323bb
push 8
pop ebx
lea edi, [esi + 0x3d0]
mov ecx, edi
call fcn.004301d3
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 0x4326d8
mov edx, dword [ebp + 8]
lea edi, [esi + 0x170]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.0043027a
pop eax
cmp byte [edi], 4
jne 0x432347
mov ebx, dword [esi + 0x174]
jmp 0x432358
mov edx, dword [esi + 0x170]
mov ebx, dword [esi + 0x174]
cmp dl, 4
jne 0x43238f
lea edi, [esi + 0x170]
lea edx, [esi + 0x630]
mov ecx, edi
mov dword [edx], ebx
call fcn.00416d56
cmp dword [edi], 0
je 0x4325fb
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.004301d3
jmp 0x432734
push 0x68
pop eax
mov dword [esi], eax
call fcn.0042fd90
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 fcn.00434160
add esp, 0xc
lea ebx, [esi + 0x108]
lea eax, [edi + 0x30]
push 0x38
push ebx
push eax
call fcn.00434160
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 fcn.00434160
add esp, 0xc
xor ecx, ecx
inc ecx
mov eax, dword [esi + 0x170]
mov dword [esi + 0x18], ecx
cmp eax, 3
jne 0x432463
mov eax, dword [esi + 0x178]
cmp eax, dword [esi + 0x180]
je 0x432748
lea ecx, [eax + 0x68]
mov dword [esi + 0x178], ecx
push 0x68
push eax
jmp 0x43258d
cmp eax, 2
jne 0x43248a
mov eax, dword [esi + 0x174]
xor edi, edi
mov dword [esi + 0x174], 2
cmp eax, 2
jne 0x432510
push 3
jmp 0x432530
mov edi, dword [esi + 0x3cc]
lea ecx, [esi + 0x630]
lea edx, [esi + 0x170]
call fcn.0041f910
cmp dword [esi + 0x630], 0
je 0x432542
mov edx, dword [esi + 0x634]
mov ecx, dword [esi + 0x638]
mov eax, dword [esi + 0x63c]
test edx, edx
je 0x432555
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 fcn.00434160
add esp, 0xc
inc edi
mov ecx, ebx
mov edx, edi
lea edi, [esi + 0xae8]
push edi
call fcn.0042fedd
pop eax
mov ecx, edi
call fcn.00430168
jmp 0x43258a
mov dword [esi + 0xa8], eax
push 0x24
lea eax, [esi + 0x178]
push eax
lea eax, [esi + 0xac]
push eax
call fcn.00434160
add esp, 0xc
push 2
pop eax
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edi
jmp 0x4325ab
and dword [esi + 0xa4], 0
mov dword [esi + 0xa0], 3
jmp 0x43259c
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 fcn.00434160
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 0x43275b
cmp edi, dword [esi + 0x5c]
mov ebx, edi
jne 0x4325cb
lea ecx, [esi + 0x5c]
call fcn.0042fdc0
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 fcn.00434160
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 0x432432
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.00422d90
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 0x43267d
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x44]
call fcn.00430764
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 0x4326f1
mov eax, dword [esi + 0xc]
lea ecx, [eax + 0x38]
call fcn.0043064e
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 fcn.00434160
mov ecx, dword [esi + 0xc]
add esp, 0xc
mov eax, dword [esi + 0x58]
inc dword [ecx + 0x40]
cmp eax, dword [ecx + 0x28]
jne 0x43272b
mov eax, dword [ecx + 0x5c]
inc eax
je 0x432dca
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.0042fdb1
lea ecx, [esi + 0x170]
call fcn.004301d3
mov ebx, dword [esi + 0x5c]
lea eax, [esi + 0x50]
cmp edi, 0x15
mov dword [esi + 0x3d0], eax
jae 0x4327ae
cmp edi, 1
jbe 0x432cdd
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x18]
lea eax, [esi + 0x3d0]
mov ecx, edi
push eax
push 1
call fcn.004304f4
mov eax, dword [esi + 0x18]
mov edx, edi
add esp, 8
jmp 0x4322f2
mov eax, edi
mov dword [esi + 0x54], ebx
shr eax, 1
imul ecx, eax, 0x68
mov al, byte [0x451ab8]
call fcn.0042cd80
test eax, eax
mov dword [esi + 8], eax
je 0x432dd4
mov ebx, edi
push 0x10
pop ecx
mov dword [esi + 0x3c], ecx
call fcn.00430641
test eax, eax
je 0x432dde
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 0x432cb8
cmp eax, 2
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], edi
jb 0x432998
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.004305fe
pop ecx
test al, al
je 0x43285a
add ebx, dword [esi + 0x48]
push 2
pop eax
mov ecx, ebx
mov ebx, eax
mov eax, ecx
cmp dword [esi + 0x10], ebx
je 0x432893
lea edi, [eax + 0x68]
lea ecx, [esi + 0x3d0]
mov edx, edi
push eax
call fcn.004305fe
pop ecx
test al, al
je 0x4328a2
inc ebx
mov eax, edi
jmp 0x43283a
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 0x432898
lea edi, [eax + 0x68]
lea ecx, [esi + 0x3d0]
mov edx, edi
push eax
call fcn.004305fe
pop ecx
test al, al
jne 0x43298c
mov eax, edi
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
inc ebx
jmp 0x432869
mov eax, dword [esi + 0x10]
jmp 0x4328a4
mov ecx, dword [esi + 0x24]
mov ebx, edi
jmp 0x432998
mov eax, ebx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x10], eax
lea edx, [eax + ecx]
mov dword [esi + 0x38], edx
push 0x4486d8
push dword [esi + 0x18]
push dword [esi + 0x2c]
call fcn.004304c4
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 0x448648
push ebx
push eax
call fcn.004304c4
add esp, 0xc
mov dword [esi + 0x44], edx
mov dword [esi], eax
xor ecx, ecx
mov edx, ebx
push 0x448658
push ebx
push edi
mov edi, ebx
call fcn.004304c4
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 0x432981
sub eax, 1
jb 0x432d2a
cmp edi, dword [esi + 0x34]
jae 0x432d39
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 fcn.00434160
add esp, 0xc
push ebx
mov ebx, dword [esi + 4]
push ebx
push edi
call fcn.00434160
add esp, 0xc
push 0x68
pop eax
push eax
lea eax, [esi + 0x170]
push eax
push ebx
call fcn.00434160
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 0x432913
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x24]
jmp 0x43299d
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 0x432d7e
cmp eax, ebx
ja 0x432d7e
jae 0x4329f8
mov ebx, dword [esi + 0x10]
cmp ebx, 9
ja 0x4329f8
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 0x448794
push eax
push dword [esi + 0x2c]
call fcn.004304c4
add esp, 0xc
mov ecx, eax
lea eax, [esi + 0x3d0]
push eax
push ebx
call fcn.004304f4
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 0x432a42
lea ecx, [edi + edi]
mov dword [esi + 0x40], ecx
call fcn.00430641
test eax, eax
je 0x432d90
mov ecx, edi
mov edi, eax
shl ecx, 3
push ecx
mov ebx, dword [esi + 0x28]
push ebx
push eax
call fcn.00434160
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.00403100
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x24]
jmp 0x432a4b
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 0x432c99
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 0x432ab6
mov ecx, dword [edi + edx*8 - 0x10]
cmp ecx, eax
jbe 0x432ab6
cmp edx, 2
jbe 0x432caa
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 0x432ac7
mov ebx, dword [esi + 0x18]
cmp edx, 3
jbe 0x432c99
add ecx, dword [esi]
mov edi, dword [esi + 0x28]
cmp dword [edi + edx*8 - 0x20], ecx
mov ecx, dword [esi]
jbe 0x432acc
jmp 0x432caa
cmp edx, 3
jb 0x432ad3
lea ecx, [edx - 3]
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + edx*8 - 0x18]
jmp 0x432acc
mov edi, dword [esi + 0x28]
mov ecx, dword [esi]
cmp ecx, eax
mov eax, dword [esi + 0x10]
jb 0x432ad6
lea eax, [edx - 2]
mov ecx, edi
mov edi, edx
push 0x4486e8
push eax
mov ebx, eax
call fcn.0043036d
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 0x4486f8
mov dword [esi + 0x3c], eax
push eax
call fcn.0043036d
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 0x448708
push dword [esi + 0x18]
push dword [esi + 0x2c]
call fcn.004304c4
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 0x432bca
imul edi, edx, 0x68
push edi
push ebx
push dword [esi + 8]
call fcn.00434160
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 0x432c38
mov edi, dword [esi]
cmp edi, dword [esi + 8]
jbe 0x432c38
mov ebx, eax
add eax, 0xffffff98
lea edx, [edi - 0x68]
lea ecx, [esi + 0x3d0]
push eax
call fcn.004305fe
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 fcn.00434160
add esp, 0xc
add edi, 0xffffff98
mov dword [esi + 0x14], edi
jmp 0x432b6e
add dword [esi + 0x30], eax
mov edi, ebx
mov ebx, ecx
push ecx
push eax
push dword [esi + 8]
call fcn.00434160
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 0x432c3f
cmp edi, dword [esi + 0x30]
jae 0x432c3f
lea ecx, [esi + 0x3d0]
mov edx, edi
mov dword [esi + 0x14], eax
push eax
call fcn.004305fe
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 fcn.00434160
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 0x432be7
mov ecx, dword [esi + 8]
mov edi, eax
jmp 0x432c44
mov edi, dword [esi + 4]
mov ecx, eax
mov eax, dword [esi]
sub eax, ecx
push eax
push ecx
push edi
call fcn.00434160
add esp, 0xc
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
cmp edx, dword [esi + 0x3c]
jbe 0x432d52
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 fcn.00434160
mov edx, dword [esi + 0x1c]
add esp, 0xc
mov ebx, dword [esi + 0x18]
dec edx
jmp 0x432a58
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov edi, dword [esi + 0x28]
mov dword [esi + 0x3c], eax
jmp 0x4327f1
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
jmp 0x4327f1
push 4
pop edx
mov ecx, edi
call fcn.00403100
push 8
pop edx
mov ecx, dword [esi + 8]
call fcn.00403100
mov eax, ebx
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 0x54]
jmp 0x4322f5
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x2c]
mov eax, edi
jmp 0x4322f5
push 2
pop eax
mov dword [esi + 8], eax
mov dword [esi + 0x1c], 0
cmp dword [esi + 0x24], 0
je 0x432d08
push 2
pop edx
mov ecx, dword [esi + 0x18]
call fcn.00403100
cmp dword [esi + 0x30], 0
je 0x432d19
mov ecx, dword [esi + 0x34]
xor edx, edx
inc edx
call fcn.00403100
mov ecx, dword [esi + 0x14]
cmp ecx, 0xffffffff
jne 0x431eb4
jmp 0x431ea7
mov ecx, dword [esi + 0x44]
mov edx, ecx
push 0x448668
call fcn.00441bb0
mov edx, dword [esi + 0x34]
mov ecx, edi
push 0x448678
call fcn.00441bb0
push 0x448934
call fcn.00441bb0
lea ecx, [esi + 0x170]
mov edx, 0x448718
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04librarycore_src_slicemod.rs
and dword [ecx + 0xc], 0
call fcn.00441b20
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0x448784
call fcn.00441c70
mov ecx, 0x448748
call fcn.00441f30
mov ecx, 0x448924
call fcn.00441f30
call fcn.004031b0
xor ecx, ecx
mov edx, ebx
inc ecx
call fcn.00441a80
and dword [esi + 0xf78], 0
xor ecx, ecx
mov edx, ebx
mov byte [esi + 0x22], 1
inc ecx
call fcn.00441a80
jmp 0x432e14
mov ecx, 0x448944
call fcn.00441f30
mov ecx, 0x448728
call fcn.00441f30
mov ecx, 0x448738
call fcn.00441f30
mov dword [esi + 0xf78], 4
push 4
pop ecx
push 0x18
pop edx
call fcn.00441a80
jmp 0x432e14
mov dword [esi + 0xf78], 3
push 4
pop ecx
push 0x18
pop edx
call fcn.00441a80
ud2