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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x118
mov esi, esp
mov dword [esi + 0x100], ebp
lea eax, [esi + 0x108]
mov dword [esi + 0x40], ecx
mov edi, dword [ebp + 8]
mov ebx, edx
xor edx, edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x5838f0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov ecx, edi
mov dword fs:[0], eax
call fcn.0041c40c
mov ecx, dword [edi + 0x58]
mov eax, dword [edi + 0x54]
lea edx, [esi + 0xa0]
mov dword [esi + 0xe4], ebx
shl ecx, 4
mov dword [edx], eax
add ecx, eax
mov eax, dword [ebx]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 4]
mov ebx, dword [edi + 0x11c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, dword [edi + 0x120]
lea edi, [esi + 0x78]
mov dword [esi + 0x68], ebx
mov dword [esi + 0x3c], ecx
mov ecx, edi
call fcn.0041e315
mov eax, dword [edi + 8]
cmp eax, 0x80000000
jne 0x41b8b0
push 8
pop ecx
and dword [esi + 0x90], 0
mov dword [esi + 0x94], 8
and dword [esi + 0x98], 0
xor edi, edi
jmp 0x41beb9
mov dword [esi + 4], eax
movsd xmm0, qword [esi + 0x78]
mov eax, dword [esi + 0x84]
movsd xmm1, qword [esi + 0x88]
and dword [esi + 0x110], 0
movsd qword [esi + 0x20], xmm0
mov dword [esi], eax
movsd qword [esi + 0xd0], xmm1
push 4
pop ecx
call fcn.0041e462
movsd xmm0, qword [esi + 0x20]
mov edi, dword [esi]
mov ecx, dword [esi + 4]
lea ebx, [esi + 0xd0]
mov dword [esi], edx
movsd qword [edx], xmm0
mov dword [edx + 8], ecx
mov dword [edx + 0xc], edi
lea edi, [esi + 0x48]
movsd xmm0, qword [ebx]
movsd qword [edx + 0x10], xmm0
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], edx
mov dword [edi + 8], 1
movsd xmm0, qword [esi + 0xa0]
movsd xmm1, qword [esi + 0xa8]
inc eax
mov dword [esi + 4], eax
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
lea ecx, [esi + 0x78]
lea edx, [esi + 0xd0]
mov dword [esi + 0x110], 1
call fcn.0041e315
mov edi, dword [esi + 0x80]
cmp edi, 0x80000000
je 0x41b9eb
mov eax, dword [esi + 4]
movsd xmm0, qword [esi + 0x88]
movsd xmm1, qword [esi + 0x78]
mov ebx, dword [esi + 0x84]
mov ecx, dword [esi]
cmp eax, dword [esi + 0x48]
movsd qword [esi + 0xf0], xmm0
jne 0x41b9b2
xor edx, edx
lea ecx, [esi + 0x48]
movsd qword [esi + 0x58], xmm1
mov dword [esi + 0x20], ebx
mov dword [esi], edi
mov dword [esi + 0x110], 2
inc edx
call fcn.0041e499
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi]
mov ebx, dword [esi + 0x20]
movsd xmm1, qword [esi + 0x58]
mov edx, dword [esi + 4]
mov dword [esi], ecx
imul eax, edx, 0x18
inc edx
movsd qword [ecx + eax], xmm1
mov dword [ecx + eax + 8], edi
mov dword [ecx + eax + 0xc], ebx
mov dword [esi + 4], edx
movsd xmm0, qword [esi + 0xf0]
movsd qword [ecx + eax + 0x10], xmm0
mov dword [esi + 0x50], edx
mov dword [esi + 0x110], 1
jmp 0x41b937
mov edx, dword [esi + 0x84]
mov ecx, 0x80000000
call fcn.0041e52f
mov edi, dword [esi + 0x50]
movsd xmm0, qword [esi + 0x48]
mov dword [esi + 0x98], edi
movsd qword [esi + 0x90], xmm0
cmp edi, 0x15
mov dword [esi + 0x1c], edi
mov ecx, dword [esi + 0x94]
mov dword [esi + 0x30], ecx
jae 0x41ba50
cmp edi, 1
jbe 0x41beb9
mov byte [esi + 0xb], 1
mov dword [esi + 0x110], 3
mov edx, edi
push 1
call fcn.0042cf92
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x1c]
add esp, 4
jmp 0x41beb9
shr edi, 1
mov dword [esi + 0x60], edi
imul ecx, edi, 0x18
mov al, byte [0x673c84]
push 8
pop edx
call fcn.004051f0
test eax, eax
je 0x41c229
mov ebx, eax
push 0x10
pop ecx
mov dword [esi], ecx
call fcn.004aeba6
test eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x28], ebx
je 0x41c24c
mov eax, dword [esi + 0x30]
xor edi, edi
xor edx, edx
add eax, 0x30
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x1c]
mov ecx, eax
sub ecx, edx
jbe 0x41be96
cmp ecx, 2
mov dword [esi + 4], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x34], edi
jae 0x41bab7
mov dword [esi + 0x38], eax
jmp 0x41bb64
mov ebx, dword [esi + 0x30]
imul eax, edx, 0x18
lea ecx, [ebx + eax]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 0x18]
ucomisd xmm0, xmm1
ja 0x41baf2
add eax, dword [esi + 0x64]
movapd xmm2, xmm1
push 2
pop ecx
cmp dword [esi + 4], ecx
je 0x41bb15
movsd xmm3, qword [eax]
ucomisd xmm2, xmm3
ja 0x41bb1a
inc ecx
add eax, 0x18
movapd xmm2, xmm3
jmp 0x41bad9
add eax, dword [esi + 0x64]
movapd xmm2, xmm1
push 2
pop ecx
cmp dword [esi + 4], ecx
je 0x41bb15
movsd xmm3, qword [eax]
ucomisd xmm2, xmm3
jbe 0x41bb1a
inc ecx
add eax, 0x18
movapd xmm2, xmm3
jmp 0x41bafc
mov eax, dword [esi + 4]
jmp 0x41bb1c
mov eax, ecx
mov ecx, edx
add edx, eax
ucomisd xmm0, xmm1
mov dword [esi + 4], eax
mov dword [esi + 0x38], edx
jbe 0x41bb64
mov eax, dword [esi + 0xc]
mov dword [esi + 0x110], 8
mov dword [esi + 0x10], eax
mov eax, dword [esi]
mov dword [esi + 0x14], eax
push 0x5d4628
push dword [esi + 0x1c]
push ebx
call fcn.0041e1c3
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi]
mov dword [esi + 0x14], ecx
mov ecx, eax
call fcn.0041e1f3
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x1c]
cmp ecx, dword [esi + 0x20]
jb 0x41c1d7
cmp ecx, eax
ja 0x41c1d7
jae 0x41bbdc
cmp dword [esi + 4], 9
mov ecx, dword [esi + 0xc]
ja 0x41bbdc
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi]
mov dword [esi + 0x110], 8
lea edx, [edi + 0xa]
mov dword [esi + 0x14], ecx
mov ecx, edi
cmp edx, eax
cmovae edx, eax
mov dword [esi + 0x38], edx
push 0x5d46f4
push eax
push dword [esi + 0x30]
call fcn.0041e1c3
mov ecx, dword [esi + 0xc]
add esp, 0xc
mov edi, dword [esi + 4]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi]
cmp edi, 1
mov dword [esi + 0x14], ecx
mov ecx, eax
adc edi, 0
push edi
call fcn.0042cf92
pop eax
mov edi, dword [esi + 0x34]
mov ebx, dword [esi]
cmp edi, ebx
jne 0x41bc21
lea ecx, [ebx + ebx]
mov dword [esi + 0x2c], ecx
call fcn.004aeba6
mov edi, eax
test eax, eax
mov eax, dword [esi + 0xc]
je 0x41c201
shl ebx, 3
push ebx
push eax
push edi
mov ebx, eax
call fcn.0058a110
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.00405250
mov ebx, edi
mov edx, dword [esi + 0x1c]
mov edi, dword [esi + 0x34]
jmp 0x41bc2a
mov dword [esi + 0x2c], ebx
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0xc], ebx
sub eax, ecx
mov dword [ebx + edi*8], eax
mov dword [ebx + edi*8 + 4], ecx
inc edi
mov eax, edx
mov edx, edi
mov ecx, ebx
push eax
call fcn.00405dfc
pop ecx
cmp eax, 1
jne 0x41be86
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x110], 8
mov ecx, ebx
mov dword [esi + 0x34], edi
mov dword [esi + 0x14], eax
mov eax, edx
mov edx, edi
push 0x5d4638
mov dword [esi + 0x74], eax
push eax
call fcn.004ac920
pop ecx
pop edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ecx
mov ecx, edx
mov edx, dword [esi + 0x34]
inc eax
push 0x5d4648
mov dword [esi + 0xec], eax
push eax
call fcn.004ac920
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xe8], ecx
add edx, ecx
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x14], eax
push 0x5d4658
push dword [esi + 0x1c]
push dword [esi + 0x30]
call fcn.0041e1c3
add esp, 0xc
mov ecx, dword [esi + 0x6c]
mov ebx, eax
imul eax, ecx, 0x18
mov dword [esi + 4], eax
lea edi, [ebx + eax]
mov eax, edx
sub eax, ecx
cmp eax, ecx
jae 0x41bd88
imul eax, eax, 0x18
mov dword [esi + 4], eax
push eax
push edi
push dword [esi + 0x28]
mov dword [esi], edx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x28]
add dword [esi + 4], eax
imul eax, dword [esi], 0x18
mov dword [esi], ebx
lea eax, [ebx + eax - 0x18]
cmp edi, dword [esi]
mov ecx, edi
jbe 0x41be0f
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 0x28]
jbe 0x41be0f
movsd xmm0, qword [ecx - 0x18]
movsd xmm1, qword [ebx - 0x18]
mov edi, ecx
xor ecx, ecx
xor edx, edx
ucomisd xmm0, xmm1
setbe cl
seta dl
neg edx
neg ecx
imul edx, edx, 0x18
imul ecx, ecx, 0x18
add ebx, ecx
add edi, edx
ucomisd xmm0, xmm1
mov dword [esi + 4], ebx
cmova ebx, edi
movsd xmm0, qword [ebx + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
add eax, 0xffffffe8
jmp 0x41bd1f
mov dword [esi + 0x58], edi
mov edi, dword [esi + 4]
imul eax, edx, 0x18
mov ecx, ebx
add ebx, eax
mov dword [esi], ebx
push edi
mov dword [esi + 0x20], ecx
push ecx
mov ebx, dword [esi + 0x28]
push ebx
call fcn.0058a110
add esp, 0xc
add edi, ebx
mov dword [esi + 4], edi
mov edi, ebx
cmp edi, dword [esi + 4]
mov eax, edi
jae 0x41be16
mov ecx, dword [esi + 0x58]
cmp ecx, dword [esi]
jae 0x41be16
movsd xmm0, qword [eax]
xor edx, edx
mov edi, eax
mov ebx, dword [esi + 0x20]
ucomisd xmm0, qword [ecx]
cmova eax, ecx
seta dl
movsd xmm0, qword [eax + 0x10]
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, 0
setbe al
imul edx, edx, 0x18
add ecx, edx
mov dword [esi + 0x44], eax
mov dword [esi + 0x58], ecx
imul ecx, dword [esi + 0x44], 0x18
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add ebx, 0x18
mov dword [esi + 0x20], ebx
add edi, ecx
jmp 0x41bdaf
mov ebx, dword [esi + 0x28]
mov edi, ecx
jmp 0x41be1b
mov edi, dword [esi + 0x20]
mov ebx, eax
mov eax, dword [esi + 4]
sub eax, ebx
push eax
push ebx
push edi
call fcn.0058a110
add esp, 0xc
mov edx, dword [esi + 0x34]
mov edi, dword [esi + 0x2c]
cmp edx, dword [esi + 0xec]
jbe 0x41c158
mov eax, dword [esi + 0xe8]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x74]
add eax, dword [esi + 0x6c]
cmp edx, ecx
mov dword [ebx + ecx*8 + 8], eax
mov eax, dword [esi + 0x70]
mov dword [ebx + ecx*8 + 0xc], eax
jbe 0x41c199
mov edi, ecx
lea eax, [ebx + ecx*8]
lea ecx, [ebx + ecx*8 + 8]
not edi
add edi, edx
shl edi, 3
push edi
push ecx
push eax
call fcn.0058a110
mov edi, dword [esi + 0x34]
add esp, 0xc
mov eax, dword [esi + 0x1c]
dec edi
jmp 0x41bc3f
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
mov ebx, dword [esi + 0x28]
mov dword [esi], eax
jmp 0x41ba94
mov ecx, dword [esi + 0xc]
mov edx, dword [esi]
mov edi, eax
call fcn.00405365
mov edx, dword [esi + 0x60]
mov ecx, ebx
call fcn.0041e1ba
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x110], 4
mov eax, dword [esi + 0x90]
imul edx, edi, 0x18
mov dword [esi + 0x48], ecx
mov byte [esi + 0x19], 1
mov dword [esi + 0x110], 4
add edx, ecx
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ecx
mov ecx, edi
mov dword [esi + 0x54], edx
call fcn.0041e15e
movsd xmm0, qword [esi + 0x48]
movsd xmm1, qword [esi + 0x50]
lea ecx, [esi + 0xb4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
movsd qword [esi + 0xa8], xmm1
movsd qword [esi + 0xa0], xmm0
mov eax, dword [esi + 0xac]
sub eax, dword [esi + 0xa8]
push 0x18
pop edi
xor edx, edx
div edi
mov byte [esi + 0x1a], 1
mov dword [esi + 0x110], 6
mov edx, eax
call fcn.0041e19c
mov ebx, dword [esi + 0xbc]
movsd xmm0, qword [esi + 0xa0]
movsd xmm1, qword [esi + 0xa8]
imul edx, ebx, 0xc
movsd qword [esi + 0xd8], xmm1
movsd qword [esi + 0xd0], xmm0
add edx, dword [esi + 0xb8]
mov edi, dword [esi + 0xd8]
mov eax, dword [esi + 0xdc]
cmp edi, eax
je 0x41bff0
mov ecx, dword [edi + 0xc]
cmp dword [edi + 8], 0x80000000
mov dword [esi], ecx
je 0x41bfe1
movsd xmm0, qword [edi + 0x10]
mov dword [esi + 4], ebx
mov ebx, eax
lea eax, [esi + 0x80]
lea ecx, [esi + 0x80]
movsd qword [esi + 0x88], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
add edi, 0x18
movsd qword [esi + 0x80], xmm1
movsd qword [esi + 0x78], xmm0
mov eax, dword [eax + 8]
movsd xmm0, qword [ecx]
mov dword [esi + 0xf8], eax
movsd qword [esi + 0xf0], xmm0
mov dword [edx + 8], eax
mov eax, ebx
mov ebx, dword [esi + 4]
movsd qword [edx], xmm0
add edx, 0xc
inc ebx
jmp 0x41bf71
add edi, 0x18
mov dword [esi + 0x110], 6
mov eax, edi
mov edx, dword [esi]
lea edi, [esi + 0xd0]
mov ecx, 0x80000000
mov dword [edi + 8], eax
call fcn.0041e52f
mov ecx, edi
mov dword [esi + 0xbc], ebx
mov byte [esi + 0x1a], 0
mov dword [esi + 0x110], 6
call fcn.0041b697
mov ecx, dword [esi + 0xbc]
movsd xmm0, qword [esi + 0xb4]
test ecx, ecx
movsd qword [esi + 0xc0], xmm0
mov dword [esi + 0xc8], ecx
je 0x41c05b
dec ecx
mov dword [esi + 0xc8], ecx
imul ecx, ecx, 0xc
mov eax, dword [esi + 0xc4]
mov edx, dword [eax + ecx]
cmp edx, 0x80000000
jne 0x41c08b
mov eax, dword [esi + 0x40]
or dword [esi + 0x110], 0xffffffff
lea ecx, [esi + 0xc0]
mov dword [eax + 4], 0x80000000
call fcn.0041e064
mov eax, dword [esi + 0x108]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add eax, ecx
mov dword [esi], edx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov byte [esi + 0x1b], 1
mov dword [esi + 0x110], 9
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0x58], eax
call fcn.0041e064
mov eax, dword [esi + 0xe4]
mov ebx, dword [eax + 0xc]
mov edi, dword [eax + 8]
xor eax, eax
shl ebx, 3
mov edx, dword [esi + 0x3c]
test ebx, ebx
je 0x41c0ee
mov ecx, dword [esi + 0x68]
mov dword [esi + 4], eax
push dword [edi + 4]
push dword [edi]
call fcn.0041e0d5
pop ecx
pop edx
test al, al
jne 0x41c107
mov eax, dword [esi + 4]
add edi, 8
add ebx, 0xfffffff8
inc eax
jmp 0x41c0c5
mov eax, dword [esi + 0x40]
mov ecx, dword [esi]
mov edx, dword [esi + 0x20]
mov dword [eax + 4], 0x80000000
call fcn.0041b0e1
jmp 0x41c077
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x110], 0xa
call fcn.0041860e
mov dword [esi + 0x44], eax
mov edi, dword [esi + 0x3c]
mov ebx, edx
push edi
push dword [esi + 0x68]
push edx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x40]
mov ecx, dword [esi]
mov edx, dword [esi + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x58]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], edi
jmp 0x41c077
lea ecx, [esi + 0x78]
mov eax, dword [esi + 0xc]
mov edx, 0x5d4668
mov dword [esi + 0x14], edi
mov dword [esi + 0x110], 8
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_srcioimpls.rs
and dword [ecx + 0xc], 0
mov dword [esi + 0x10], eax
call fcn.0059a150
jmp 0x41c269
lea ecx, [esi + 0x78]
mov edx, 0x5d46a8
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edi
mov dword [esi + 0x110], 8
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_srcioimpls.rs
and dword [ecx + 0xc], 0
call fcn.0059a150
jmp 0x41c269
mov eax, dword [esi + 0xc]
mov edx, dword [esi]
mov dword [esi + 0x110], 8
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0x5d46e4
call fcn.0059a2a0
pop eax
jmp 0x41c269
mov edx, dword [esi + 0x2c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x110], 8
mov dword [esi + 0x14], edx
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_navigate.rs
push 0x5d4698
call fcn.0059a2a0
pop eax
jmp 0x41c269
mov byte [esi + 0xb], 1
mov dword [esi + 0x110], 3
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_navigate.rs
push 0x5d4678
call fcn.0059a2a0
pop eax
jmp 0x41c269
mov dword [esi + 0x110], 7
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_navigate.rs
push 0x5d4688
call fcn.0059a2a0
pop eax
ud2